{"diffoscope-json-version": 1, "source1": "/srv/reproducible-results/rbuild-debian/r-b-build.tePCzgHb/b1/lava_2023.01-2_i386.changes", "source2": "/srv/reproducible-results/rbuild-debian/r-b-build.tePCzgHb/b2/lava_2023.01-2_i386.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- 3adb90c95131842c8de1c881cb8ef3b0 2489168 doc optional lava-server-doc_2023.01-2_all.deb\n+ 4d4242edac2dfc0cb694bc28ee1691e4 2489124 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": "file list", "source2": "file list", "unified_diff": "@@ -1,3 +1,3 @@\n -rw-r--r-- 0 0 0 4 2023-01-23 19:32:59.000000 debian-binary\n -rw-r--r-- 0 0 0 10776 2023-01-23 19:32:59.000000 control.tar.xz\n--rw-r--r-- 0 0 0 2478200 2023-01-23 19:32:59.000000 data.tar.xz\n+-rw-r--r-- 0 0 0 2478156 2023-01-23 19:32:59.000000 data.tar.xz\n"}, {"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,82 +6085,97 @@\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- \"Internet of Things (IoT) Boards\": [\n- [53, \"internet-of-things-iot-boards\"]\n+ \"U-Boot\": [\n+ [54, \"u-boot\"]\n ],\n- \"Arduino101\": [\n- [53, \"arduino101\"]\n+ \"Common U-Boot support\": [\n+ [54, \"common-u-boot-support\"]\n ],\n- \"Cons\": [\n- [53, \"cons\"],\n- [53, \"id1\"],\n- [56, \"cons\"],\n- [55, \"cons\"],\n- [55, \"id1\"]\n+ \"Configuration\": [\n+ [54, \"configuration\"],\n+ [58, \"configuration\"],\n+ [60, \"configuration\"],\n+ [22, \"configuration\"],\n+ [8, \"configuration\"]\n ],\n- \"FRDM-K64F\": [\n- [53, \"frdm-k64f\"]\n+ \"Prompts\": [\n+ [54, \"prompts\"]\n ],\n- \"Installing on a Debian system\": [\n- [51, \"installing-on-a-debian-system\"]\n+ \"Interrupting U-Boot\": [\n+ [54, \"interrupting-u-boot\"]\n ],\n- \"Recommended Debian architectures\": [\n- [51, \"recommended-debian-architectures\"]\n+ \"Troubleshooting Interrupting U-Boot\": [\n+ [54, \"troubleshooting-interrupting-u-boot\"]\n ],\n- \"LAVA repositories\": [\n- [51, \"lava-repositories\"]\n+ \"Load addresses\": [\n+ [54, \"load-addresses\"]\n ],\n- \"Releases\": [\n- [51, \"releases\"],\n- [88, \"releases\"]\n+ \"Required configuration\": [\n+ [54, \"required-configuration\"]\n ],\n- \"Daily builds\": [\n- [51, \"daily-builds\"],\n- [36, \"daily-builds\"]\n+ \"Booting the kernel\": [\n+ [54, \"booting-the-kernel\"],\n+ [99, \"booting-the-kernel\"]\n ],\n- \"Snapshots\": [\n- [51, \"snapshots\"]\n+ \"U-Boot bootargs\": [\n+ [54, \"u-boot-bootargs\"]\n ],\n- \"Buster users\": [\n- [51, \"buster-users\"]\n+ \"Using mkimage\": [\n+ [54, \"using-mkimage\"]\n ],\n- \"LAVA Archive signing keys\": [\n- [51, \"lava-archive-signing-keys\"]\n+ \"Vendor builds\": [\n+ [54, \"vendor-builds\"]\n ],\n- \"Production releases\": [\n- [51, \"production-releases\"]\n+ \"Network support\": [\n+ [54, \"network-support\"]\n ],\n- \"Configuring the installation\": [\n- [51, \"configuring-the-installation\"]\n+ \"Additional U-Boot support\": [\n+ [54, \"additional-u-boot-support\"]\n ],\n- \"LAVA and Python3\": [\n- [51, \"lava-and-python3\"]\n+ \"Filesystem support\": [\n+ [54, \"filesystem-support\"]\n ],\n- \"Setting up a reverse proxy\": [\n- [51, \"setting-up-a-reverse-proxy\"]\n+ \"Interface names\": [\n+ [54, \"interface-names\"]\n ],\n- \"Superuser\": [\n- [51, \"superuser\"]\n+ \"Initializing subsystems\": [\n+ [54, \"initializing-subsystems\"]\n ],\n- \"LDAP\": [\n- [51, \"ldap\"]\n+ \"Appending the DTB\": [\n+ [54, \"appending-the-dtb\"]\n ],\n- \"Local Django Accounts\": [\n- [51, \"local-django-accounts\"]\n+ \"Deploying an iPXE (x86) device\": [\n+ [59, \"deploying-an-ipxe-x86-device\"]\n ],\n- \"Debugging the Installation\": [\n- [51, \"debugging-the-installation\"]\n+ \"Preparing the target test device\": [\n+ [59, \"preparing-the-target-test-device\"]\n ],\n- \"Using localhost or non HTTPS instance URL\": [\n- [51, \"using-localhost-or-non-https-instance-url\"]\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+ \"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 \"Detailed device information in LAVA Scheduler\": [\n [63, \"detailed-device-information-in-lava-scheduler\"]\n ],\n \"Static device information\": [\n [63, \"static-device-information\"]\n ],\n@@ -6178,51 +6193,121 @@\n ],\n \"Edit device description\": [\n [63, \"edit-device-description\"]\n ],\n \"Restrict submissions\": [\n [63, \"restrict-submissions\"]\n ],\n- \"LAVA Scheduler summary help\": [\n- [61, \"lava-scheduler-summary-help\"]\n+ \"Writing Health Checks for devices\": [\n+ [48, \"writing-health-checks-for-devices\"]\n ],\n- \"Device Type Overview\": [\n- [61, \"device-type-overview\"]\n+ \"LAVA YAML health checks\": [\n+ [48, \"lava-yaml-health-checks\"]\n ],\n- \"Overall status\": [\n- [61, \"overall-status\"]\n+ \"Device Types and templates\": [\n+ [48, \"device-types-and-templates\"]\n ],\n- \"Online devices\": [\n- [61, \"online-devices\"]\n+ \"Tasks within health checks\": [\n+ [48, \"tasks-within-health-checks\"]\n ],\n- \"Passing health checks\": [\n- [61, \"passing-health-checks\"]\n+ \"Checking infrastructure and peripherals in health checks\": [\n+ [48, \"checking-infrastructure-and-peripherals-in-health-checks\"]\n ],\n- \"Reports\": [\n- [61, \"reports\"]\n+ \"Using lava_test_shell inside health checks\": [\n+ [48, \"using-lava-test-shell-inside-health-checks\"]\n ],\n- \"All devices\": [\n- [61, \"all-devices\"]\n+ \"Infrastructure issues\": [\n+ [48, \"infrastructure-issues\"]\n ],\n- \"All Active devices\": [\n- [61, \"all-active-devices\"]\n+ \"Integration Stories\": [\n+ [56, \"integration-stories\"]\n ],\n- \"All Device Health\": [\n- [61, \"all-device-health\"]\n+ \"Integration Story One - Nexus\": [\n+ [56, \"integration-story-one-nexus\"]\n ],\n- \"Device types\": [\n- [61, \"device-types\"],\n- [31, \"device-types\"]\n+ \"Deploy\": [\n+ [56, \"deploy\"],\n+ [56, \"id2\"],\n+ [98, \"deploy\"],\n+ [100, \"deploy\"],\n+ [70, \"deploy\"]\n ],\n- \"Active Jobs\": [\n- [61, \"active-jobs\"]\n+ \"Boot\": [\n+ [56, \"boot\"],\n+ [56, \"id3\"],\n+ [98, \"boot\"],\n+ [100, \"boot\"],\n+ [70, \"boot\"]\n ],\n- \"Workers\": [\n- [61, \"workers\"],\n- [95, \"workers\"]\n+ \"Issues\": [\n+ [56, \"issues\"],\n+ [56, \"id1\"],\n+ [56, \"id5\"]\n+ ],\n+ \"Integration Story Two - Pixel\": [\n+ [56, \"integration-story-two-pixel\"]\n+ ],\n+ \"Pixel\": [\n+ [56, \"pixel\"]\n+ ],\n+ \"Integration Story Three - HiKey 6220\": [\n+ [56, \"integration-story-three-hikey-6220\"]\n+ ],\n+ \"Unstable UEFI firmware\": [\n+ [56, \"unstable-uefi-firmware\"]\n+ ],\n+ \"Serial numbers\": [\n+ [56, \"serial-numbers\"]\n+ ],\n+ \"AOSP\": [\n+ [56, \"aosp\"],\n+ [56, \"id4\"]\n+ ],\n+ \"OE\": [\n+ [56, \"oe\"]\n+ ],\n+ \"Debian\": [\n+ [56, \"debian\"]\n+ ],\n+ \"OE / Debian\": [\n+ [56, \"oe-debian\"]\n+ ],\n+ \"Other Issues\": [\n+ [56, \"other-issues\"]\n+ ],\n+ \"Overview\": [\n+ [56, \"overview\"]\n+ ],\n+ \"V2 Scenario\": [\n+ [56, \"v2-scenario\"]\n+ ],\n+ \"V1 Scenario\": [\n+ [56, \"v1-scenario\"]\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+ \"Cons\": [\n+ [56, \"cons\"],\n+ [53, \"cons\"],\n+ [53, \"id1\"],\n+ [55, \"cons\"],\n+ [55, \"id1\"]\n+ ],\n+ \"Internet of Things (IoT) Boards\": [\n+ [53, \"internet-of-things-iot-boards\"]\n+ ],\n+ \"Arduino101\": [\n+ [53, \"arduino101\"]\n+ ],\n+ \"FRDM-K64F\": [\n+ [53, \"frdm-k64f\"]\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@@ -6235,84 +6320,147 @@\n ],\n \"Exported parameters\": [\n [62, \"exported-parameters\"]\n ],\n \"Other parameters\": [\n [62, \"other-parameters\"]\n ],\n- \"Hidden device types\": [\n- [49, \"hidden-device-types\"]\n+ \"UEFI\": [\n+ [55, \"uefi\"]\n ],\n- \"Changes needed when managing a hidden device type\": [\n- [49, \"changes-needed-when-managing-a-hidden-device-type\"]\n+ \"Introduction\": [\n+ [55, \"introduction\"],\n+ [24, \"introduction\"],\n+ [12, \"introduction\"],\n+ [79, \"introduction\"]\n ],\n- \"Private test job visibility\": [\n- [49, \"private-test-job-visibility\"]\n+ \"UEFI menus\": [\n+ [55, \"uefi-menus\"]\n ],\n- \"Health Checks\": [\n- [49, \"health-checks\"]\n+ \"UEFI graphical interfaces\": [\n+ [55, \"uefi-graphical-interfaces\"]\n ],\n- \"U-Boot\": [\n- [54, \"u-boot\"]\n+ \"D02/D03\": [\n+ [55, \"d02-d03\"]\n ],\n- \"Common U-Boot support\": [\n- [54, \"common-u-boot-support\"]\n+ \"Mustang UEFI\": [\n+ [55, \"mustang-uefi\"]\n ],\n- \"Configuration\": [\n- [54, \"configuration\"],\n- [60, \"configuration\"],\n- [58, \"configuration\"],\n- [22, \"configuration\"],\n- [8, \"configuration\"]\n+ \"HiKey 620\": [\n+ [55, \"hikey-620\"]\n ],\n- \"Prompts\": [\n- [54, \"prompts\"]\n+ \"HiKey 960\": [\n+ [55, \"hikey-960\"]\n ],\n- \"Interrupting U-Boot\": [\n- [54, \"interrupting-u-boot\"]\n+ \"Writing an interactive test action\": [\n+ [57, \"writing-an-interactive-test-action\"]\n ],\n- \"Troubleshooting Interrupting U-Boot\": [\n- [54, \"troubleshooting-interrupting-u-boot\"]\n+ \"Advantages of interactive pattern matching\": [\n+ [57, \"advantages-of-interactive-pattern-matching\"]\n ],\n- \"Load addresses\": [\n- [54, \"load-addresses\"]\n+ \"Limits of interactive pattern matching\": [\n+ [57, \"limits-of-interactive-pattern-matching\"]\n ],\n- \"Required configuration\": [\n- [54, \"required-configuration\"]\n+ \"Example interactive test job\": [\n+ [57, \"example-interactive-test-job\"]\n ],\n- \"Booting the kernel\": [\n- [54, \"booting-the-kernel\"],\n- [99, \"booting-the-kernel\"]\n+ \"Combining different test actions\": [\n+ [57, \"combining-different-test-actions\"]\n ],\n- \"U-Boot bootargs\": [\n- [54, \"u-boot-bootargs\"]\n+ \"Deploying an ipmi/pxe-boot Device\": [\n+ [58, \"deploying-an-ipmi-pxe-boot-device\"]\n ],\n- \"Using mkimage\": [\n- [54, \"using-mkimage\"]\n+ \"Machines for Dispatching a Job\": [\n+ [58, \"machines-for-dispatching-a-job\"]\n ],\n- \"Vendor builds\": [\n- [54, \"vendor-builds\"]\n+ \"Installing ipmitool\": [\n+ [58, \"installing-ipmitool\"]\n ],\n- \"Network support\": [\n- [54, \"network-support\"]\n+ \"Address Configuration\": [\n+ [58, \"address-configuration\"]\n ],\n- \"Additional U-Boot support\": [\n- [54, \"additional-u-boot-support\"]\n+ \"Addressing Calxeda Highbank Devices\": [\n+ [58, \"addressing-calxeda-highbank-devices\"]\n ],\n- \"Filesystem support\": [\n- [54, \"filesystem-support\"]\n+ \"ipmitool usage\": [\n+ [58, \"ipmitool-usage\"]\n ],\n- \"Interface names\": [\n- [54, \"interface-names\"]\n+ \"Serial over LAN input issues\": [\n+ [58, \"serial-over-lan-input-issues\"]\n ],\n- \"Initializing subsystems\": [\n- [54, \"initializing-subsystems\"]\n+ \"busybox httpd + wget\": [\n+ [58, \"busybox-httpd-wget\"]\n ],\n- \"Appending the DTB\": [\n- [54, \"appending-the-dtb\"]\n+ \"PXE Boot\": [\n+ [58, \"pxe-boot\"]\n+ ],\n+ \"Server Configuration\": [\n+ [58, \"server-configuration\"]\n+ ],\n+ \"tftpboot Directory\": [\n+ [58, \"tftpboot-directory\"]\n+ ],\n+ \"Creating the kernel and initrd for pxe booting\": [\n+ [58, \"creating-the-kernel-and-initrd-for-pxe-booting\"]\n+ ],\n+ \"Debugging with initrd\": [\n+ [58, \"debugging-with-initrd\"]\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+ \"LAVA repositories\": [\n+ [51, \"lava-repositories\"]\n+ ],\n+ \"Releases\": [\n+ [51, \"releases\"],\n+ [88, \"releases\"]\n+ ],\n+ \"Daily builds\": [\n+ [51, \"daily-builds\"],\n+ [36, \"daily-builds\"]\n+ ],\n+ \"Snapshots\": [\n+ [51, \"snapshots\"]\n+ ],\n+ \"Buster users\": [\n+ [51, \"buster-users\"]\n+ ],\n+ \"LAVA Archive signing keys\": [\n+ [51, \"lava-archive-signing-keys\"]\n+ ],\n+ \"Production releases\": [\n+ [51, \"production-releases\"]\n+ ],\n+ \"Configuring the installation\": [\n+ [51, \"configuring-the-installation\"]\n+ ],\n+ \"LAVA and Python3\": [\n+ [51, \"lava-and-python3\"]\n+ ],\n+ \"Setting up a reverse proxy\": [\n+ [51, \"setting-up-a-reverse-proxy\"]\n+ ],\n+ \"Superuser\": [\n+ [51, \"superuser\"]\n+ ],\n+ \"LDAP\": [\n+ [51, \"ldap\"]\n+ ],\n+ \"Local Django Accounts\": [\n+ [51, \"local-django-accounts\"]\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 \"Using Test Results\": [\n [60, \"using-test-results\"]\n ],\n \"LAVA result visualization\": [\n [60, \"lava-result-visualization\"]\n ],\n@@ -6384,31 +6532,49 @@\n ],\n \"Omitting Chart Results\": [\n [60, \"omitting-chart-results\"]\n ],\n \"Chart by URL\": [\n [60, \"chart-by-url\"]\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 \"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- [3, \"contents\"],\n- [2, \"contents\"],\n+ [0, \"contents\"],\n [5, \"contents\"],\n- [0, \"contents\"]\n+ [3, \"contents\"],\n+ [2, \"contents\"]\n ],\n \"Page indices\": [\n [50, \"page-indices\"]\n ],\n \"About LAVA V2\": [\n [50, \"about-lava-v2\"]\n ],\n@@ -6466,217 +6632,138 @@\n ],\n \"Support\": [\n [50, \"support\"]\n ],\n \"Full documentation\": [\n [50, \"full-documentation\"]\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- \"Device Types and templates\": [\n- [48, \"device-types-and-templates\"]\n- ],\n- \"Tasks within health checks\": [\n- [48, \"tasks-within-health-checks\"]\n- ],\n- \"Checking infrastructure and peripherals in health checks\": [\n- [48, \"checking-infrastructure-and-peripherals-in-health-checks\"]\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- \"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- [100, \"deploy\"],\n- [98, \"deploy\"],\n- [70, \"deploy\"]\n- ],\n- \"Boot\": [\n- [56, \"boot\"],\n- [56, \"id3\"],\n- [100, \"boot\"],\n- [98, \"boot\"],\n- [70, \"boot\"]\n- ],\n- \"Issues\": [\n- [56, \"issues\"],\n- [56, \"id1\"],\n- [56, \"id5\"]\n- ],\n- \"Integration Story Two - Pixel\": [\n- [56, \"integration-story-two-pixel\"]\n- ],\n- \"Pixel\": [\n- [56, \"pixel\"]\n- ],\n- \"Integration Story Three - HiKey 6220\": [\n- [56, \"integration-story-three-hikey-6220\"]\n- ],\n- \"Unstable UEFI firmware\": [\n- [56, \"unstable-uefi-firmware\"]\n- ],\n- \"Serial numbers\": [\n- [56, \"serial-numbers\"]\n- ],\n- \"AOSP\": [\n- [56, \"aosp\"],\n- [56, \"id4\"]\n- ],\n- \"OE\": [\n- [56, \"oe\"]\n- ],\n- \"Debian\": [\n- [56, \"debian\"]\n- ],\n- \"OE / Debian\": [\n- [56, \"oe-debian\"]\n- ],\n- \"Other Issues\": [\n- [56, \"other-issues\"]\n- ],\n- \"Overview\": [\n- [56, \"overview\"]\n- ],\n- \"V2 Scenario\": [\n- [56, \"v2-scenario\"]\n- ],\n- \"V1 Scenario\": [\n- [56, \"v1-scenario\"]\n+ \"LAVA Scheduler summary help\": [\n+ [61, \"lava-scheduler-summary-help\"]\n ],\n- \"Integration Story - Dragonboard 410c\": [\n- [56, \"integration-story-dragonboard-410c\"]\n+ \"Device Type Overview\": [\n+ [61, \"device-type-overview\"]\n ],\n- \"Integration Story Five - HiKey 960\": [\n- [56, \"integration-story-five-hikey-960\"]\n+ \"Overall status\": [\n+ [61, \"overall-status\"]\n ],\n- \"Deploying an iPXE (x86) device\": [\n- [59, \"deploying-an-ipxe-x86-device\"]\n+ \"Online devices\": [\n+ [61, \"online-devices\"]\n ],\n- \"Preparing the target test device\": [\n- [59, \"preparing-the-target-test-device\"]\n+ \"Passing health checks\": [\n+ [61, \"passing-health-checks\"]\n ],\n- \"Dispatch Steps\": [\n- [59, \"dispatch-steps\"],\n- [58, \"dispatch-steps\"]\n+ \"Reports\": [\n+ [61, \"reports\"]\n ],\n- \"Kernel, Ramdisk and Rootfs considerations\": [\n- [59, \"kernel-ramdisk-and-rootfs-considerations\"]\n+ \"All devices\": [\n+ [61, \"all-devices\"]\n ],\n- \"Deploying an ipmi/pxe-boot Device\": [\n- [58, \"deploying-an-ipmi-pxe-boot-device\"]\n+ \"All Active devices\": [\n+ [61, \"all-active-devices\"]\n ],\n- \"Machines for Dispatching a Job\": [\n- [58, \"machines-for-dispatching-a-job\"]\n+ \"All Device Health\": [\n+ [61, \"all-device-health\"]\n ],\n- \"Installing ipmitool\": [\n- [58, \"installing-ipmitool\"]\n+ \"Device types\": [\n+ [61, \"device-types\"],\n+ [31, \"device-types\"]\n ],\n- \"Address Configuration\": [\n- [58, \"address-configuration\"]\n+ \"Active Jobs\": [\n+ [61, \"active-jobs\"]\n ],\n- \"Addressing Calxeda Highbank Devices\": [\n- [58, \"addressing-calxeda-highbank-devices\"]\n+ \"Workers\": [\n+ [61, \"workers\"],\n+ [95, \"workers\"]\n ],\n- \"ipmitool usage\": [\n- [58, \"ipmitool-usage\"]\n+ \"Providing gold standard images\": [\n+ [45, \"providing-gold-standard-images\"]\n ],\n- \"Serial over LAN input issues\": [\n- [58, \"serial-over-lan-input-issues\"]\n+ \"Creating a gold standard image\": [\n+ [45, \"creating-a-gold-standard-image\"]\n ],\n- \"busybox httpd + wget\": [\n- [58, \"busybox-httpd-wget\"]\n+ \"Other gold standard components\": [\n+ [45, \"other-gold-standard-components\"]\n ],\n- \"PXE Boot\": [\n- [58, \"pxe-boot\"]\n+ \"Writing YAML job submission files\": [\n+ [34, \"writing-yaml-job-submission-files\"]\n ],\n- \"Server Configuration\": [\n- [58, \"server-configuration\"]\n+ \"Basics of the YAML format\": [\n+ [34, \"basics-of-the-yaml-format\"]\n ],\n- \"tftpboot Directory\": [\n- [58, \"tftpboot-directory\"]\n+ \"Basic structure for job submission\": [\n+ [34, \"basic-structure-for-job-submission\"]\n ],\n- \"Creating the kernel and initrd for pxe booting\": [\n- [58, \"creating-the-kernel-and-initrd-for-pxe-booting\"]\n+ \"Sample JOB definition for a KVM\": [\n+ [34, \"sample-job-definition-for-a-kvm\"]\n ],\n- \"Debugging with initrd\": [\n- [58, \"debugging-with-initrd\"]\n+ \"Basic structure for device_type configuration\": [\n+ [34, \"basic-structure-for-device-type-configuration\"]\n ],\n- \"Fastboot\": [\n- [52, \"fastboot\"]\n+ \"Basic structure for device configuration\": [\n+ [34, \"basic-structure-for-device-configuration\"]\n ],\n- \"External constraints\": [\n- [52, \"external-constraints\"]\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- \"Device changes\": [\n- [52, \"device-changes\"]\n+ \"Example One\": [\n+ [34, \"example-one\"],\n+ [30, \"example-one\"]\n ],\n- \"Images\": [\n- [52, \"images\"]\n+ \"Example Two\": [\n+ [34, \"example-two\"],\n+ [30, \"example-two\"]\n ],\n- \"Android\": [\n- [52, \"android\"]\n+ \"Example Three\": [\n+ [34, \"example-three\"]\n ],\n- \"Specific support for fastboot devices in LAVA\": [\n- [52, \"specific-support-for-fastboot-devices-in-lava\"]\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- \"Writing an interactive test action\": [\n- [57, \"writing-an-interactive-test-action\"]\n+ \"Pipeline Device Configuration\": [\n+ [34, \"pipeline-device-configuration\"]\n ],\n- \"Advantages of interactive pattern matching\": [\n- [57, \"advantages-of-interactive-pattern-matching\"]\n+ \"Viewing the Device Dictionary\": [\n+ [34, \"viewing-the-device-dictionary\"]\n ],\n- \"Limits of interactive pattern matching\": [\n- [57, \"limits-of-interactive-pattern-matching\"]\n+ \"On scheduler device detail page\": [\n+ [34, \"on-scheduler-device-detail-page\"]\n ],\n- \"Example interactive test job\": [\n- [57, \"example-interactive-test-job\"]\n+ \"On Job Description Tab\": [\n+ [34, \"on-job-description-tab\"]\n ],\n- \"Combining different test actions\": [\n- [57, \"combining-different-test-actions\"]\n+ \"As Admin\": [\n+ [34, \"as-admin\"]\n ],\n- \"UEFI\": [\n- [55, \"uefi\"]\n+ \"Dispatcher actions\": [\n+ [34, \"dispatcher-actions\"]\n ],\n- \"Introduction\": [\n- [55, \"introduction\"],\n- [24, \"introduction\"],\n- [12, \"introduction\"],\n- [79, \"introduction\"]\n+ \"Mapping deployment actions to the python code\": [\n+ [34, \"mapping-deployment-actions-to-the-python-code\"]\n ],\n- \"UEFI menus\": [\n- [55, \"uefi-menus\"]\n+ \"Deployment actions\": [\n+ [34, \"deployment-actions\"]\n ],\n- \"UEFI graphical interfaces\": [\n- [55, \"uefi-graphical-interfaces\"]\n+ \"Supported methods\": [\n+ [34, \"supported-methods\"],\n+ [34, \"id1\"]\n ],\n- \"D02/D03\": [\n- [55, \"d02-d03\"]\n+ \"Boot actions\": [\n+ [34, \"boot-actions\"]\n ],\n- \"Mustang UEFI\": [\n- [55, \"mustang-uefi\"]\n+ \"Test actions\": [\n+ [34, \"test-actions\"]\n ],\n- \"HiKey 620\": [\n- [55, \"hikey-620\"]\n+ \"Metadata\": [\n+ [34, \"metadata\"],\n+ [92, \"metadata\"],\n+ [101, \"metadata\"],\n+ [111, \"metadata\"]\n ],\n- \"HiKey 960\": [\n- [55, \"hikey-960\"]\n+ \"Submit actions\": [\n+ [34, \"submit-actions\"]\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@@ -6695,31 +6782,34 @@\n ],\n \"Using the functional test frontend\": [\n [42, \"using-the-functional-test-frontend\"]\n ],\n \"Dedicated workers\": [\n [42, \"dedicated-workers\"]\n ],\n- \"FVP\": [\n- [43, \"fvp\"]\n+ \"Explaining the first job in detail\": [\n+ [37, \"explaining-the-first-job-in-detail\"]\n ],\n- \"LAVA FVP Dispatcher Setup\": [\n- [43, \"lava-fvp-dispatcher-setup\"]\n+ \"Top level elements of a test job\": [\n+ [37, \"top-level-elements-of-a-test-job\"]\n ],\n- \"FVP Binaries\": [\n- [43, \"fvp-binaries\"]\n+ \"Actions within the test job\": [\n+ [37, \"actions-within-the-test-job\"]\n ],\n- \"Building FVP Docker Images\": [\n- [43, \"building-fvp-docker-images\"]\n+ \"Deploy action for QEMU\": [\n+ [37, \"deploy-action-for-qemu\"]\n ],\n- \"Networking inside Models\": [\n- [43, \"networking-inside-models\"]\n+ \"Example of deploy label substitution\": [\n+ [37, \"example-of-deploy-label-substitution\"]\n ],\n- \"Reading from all model consoles\": [\n- [43, \"reading-from-all-model-consoles\"]\n+ \"Boot action for QEMU\": [\n+ [37, \"boot-action-for-qemu\"]\n+ ],\n+ \"Test action for QEMU\": [\n+ [37, \"test-action-for-qemu\"]\n ],\n \"First steps installing LAVA\": [\n [39, \"first-steps-installing-lava\"],\n [17, \"first-steps-installing-lava\"]\n ],\n \"Initial LAVA Installation\": [\n [39, \"initial-lava-installation\"]\n@@ -6839,22 +6929,37 @@\n ],\n \"Firewalls\": [\n [46, \"firewalls\"]\n ],\n \"Using a frontend with remote labs\": [\n [46, \"using-a-frontend-with-remote-labs\"]\n ],\n+ \"First steps as a user\": [\n+ [41, \"first-steps-as-a-user\"]\n+ ],\n+ \"Logging In\": [\n+ [41, \"logging-in\"]\n+ ],\n+ \"Local User Account\": [\n+ [41, \"local-user-account\"]\n+ ],\n+ \"Linaro lab users\": [\n+ [41, \"linaro-lab-users\"]\n+ ],\n+ \"Authentication Tokens\": [\n+ [41, \"authentication-tokens\"]\n+ ],\n \"LAVA Hacking Sessions\": [\n [47, \"lava-hacking-sessions\"]\n ],\n \"Limitations\": [\n [47, \"limitations\"],\n+ [105, \"limitations\"],\n [96, \"limitations\"],\n- [96, \"id2\"],\n- [105, \"limitations\"]\n+ [96, \"id2\"]\n ],\n \"Definitions\": [\n [47, \"definitions\"],\n [5, \"definitions\"],\n [105, \"definitions\"]\n ],\n \"Parameters\": [\n@@ -6890,219 +6995,14 @@\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- \"Lava Dispatcher Design\": [\n- [33, \"lava-dispatcher-design\"]\n- ],\n- \"Pipeline Architecture\": [\n- [33, \"pipeline-architecture\"]\n- ],\n- \"Principal changes\": [\n- [33, \"principal-changes\"]\n- ],\n- \"Objectives\": [\n- [33, \"objectives\"]\n- ],\n- \"Design\": [\n- [33, \"design\"]\n- ],\n- \"Following the code flow\": [\n- [33, \"following-the-code-flow\"]\n- ],\n- \"Pipeline construction and flow\": [\n- [33, \"pipeline-construction-and-flow\"]\n- ],\n- \"Using strategy classes\": [\n- [33, \"using-strategy-classes\"]\n- ],\n- \"Lava test shell scripts\": [\n- [33, \"lava-test-shell-scripts\"]\n- ],\n- \"Pipeline error handling\": [\n- [33, \"pipeline-error-handling\"]\n- ],\n- \"RuntimeError Exception\": [\n- [33, \"runtimeerror-exception\"]\n- ],\n- \"InfrastructureError Exception\": [\n- [33, \"infrastructureerror-exception\"]\n- ],\n- \"JobError Exception\": [\n- [33, \"joberror-exception\"]\n- ],\n- \"TestError Exception\": [\n- [33, \"testerror-exception\"]\n- ],\n- \"Result bundle identifiers\": [\n- [33, \"result-bundle-identifiers\"]\n- ],\n- \"Secondary media\": [\n- [33, \"secondary-media\"],\n- [96, \"secondary-media\"]\n- ],\n- \"Device configuration design\": [\n- [33, \"device-configuration-design\"]\n- ],\n- \"Device Dictionary\": [\n- [33, \"device-dictionary\"]\n- ],\n- \"Exporting an existing device dictionary\": [\n- [33, \"exporting-an-existing-device-dictionary\"]\n- ],\n- \"Reviewing an existing device dictionary\": [\n- [33, \"reviewing-an-existing-device-dictionary\"]\n- ],\n- \"Example device configuration review\": [\n- [33, \"example-device-configuration-review\"]\n- ],\n- \"Importing configuration using a known template\": [\n- [33, \"importing-configuration-using-a-known-template\"]\n- ],\n- \"Creating a new template\": [\n- [33, \"creating-a-new-template\"]\n- ],\n- \"Running lava-run directly\": [\n- [33, \"running-lava-run-directly\"]\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- \"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- ],\n- \"Example One\": [\n- [34, \"example-one\"],\n- [30, \"example-one\"]\n- ],\n- \"Example Two\": [\n- [34, \"example-two\"],\n- [30, \"example-two\"]\n- ],\n- \"Example Three\": [\n- [34, \"example-three\"]\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- ],\n- \"Pipeline Device Configuration\": [\n- [34, \"pipeline-device-configuration\"]\n- ],\n- \"Viewing the Device Dictionary\": [\n- [34, \"viewing-the-device-dictionary\"]\n- ],\n- \"On scheduler device detail page\": [\n- [34, \"on-scheduler-device-detail-page\"]\n- ],\n- \"On Job Description Tab\": [\n- [34, \"on-job-description-tab\"]\n- ],\n- \"As Admin\": [\n- [34, \"as-admin\"]\n- ],\n- \"Dispatcher actions\": [\n- [34, \"dispatcher-actions\"]\n- ],\n- \"Mapping deployment actions to the python code\": [\n- [34, \"mapping-deployment-actions-to-the-python-code\"]\n- ],\n- \"Deployment actions\": [\n- [34, \"deployment-actions\"]\n- ],\n- \"Supported methods\": [\n- [34, \"supported-methods\"],\n- [34, \"id1\"]\n- ],\n- \"Boot actions\": [\n- [34, \"boot-actions\"]\n- ],\n- \"Test actions\": [\n- [34, \"test-actions\"]\n- ],\n- \"Metadata\": [\n- [34, \"metadata\"],\n- [92, \"metadata\"],\n- [111, \"metadata\"],\n- [101, \"metadata\"]\n- ],\n- \"Submit actions\": [\n- [34, \"submit-actions\"]\n- ],\n- \"Adding your first devices\": [\n- [38, \"adding-your-first-devices\"]\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- \"First steps as a user\": [\n- [41, \"first-steps-as-a-user\"]\n- ],\n- \"Logging In\": [\n- [41, \"logging-in\"]\n- ],\n- \"Local User Account\": [\n- [41, \"local-user-account\"]\n- ],\n- \"Linaro lab users\": [\n- [41, \"linaro-lab-users\"]\n- ],\n- \"Authentication Tokens\": [\n- [41, \"authentication-tokens\"]\n- ],\n \"Testing the design\": [\n [35, \"testing-the-design\"]\n ],\n \"lava-server\": [\n [35, \"lava-server\"],\n [36, \"lava-server\"],\n [36, \"id3\"],\n@@ -7156,16 +7056,16 @@\n ],\n \"Using debug logs\": [\n [35, \"using-debug-logs\"]\n ],\n \"Examples\": [\n [35, \"examples\"],\n [12, \"examples\"],\n- [111, \"examples\"],\n- [96, \"examples\"]\n+ [96, \"examples\"],\n+ [111, \"examples\"]\n ],\n \"Debugging on the worker\": [\n [35, \"debugging-on-the-worker\"]\n ],\n \"Adding new classes\": [\n [35, \"adding-new-classes\"]\n ],\n@@ -7189,16 +7089,43 @@\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- \"Glossary of terms\": [\n- [44, \"glossary-of-terms\"]\n+ \"Adding your first devices\": [\n+ [38, \"adding-your-first-devices\"]\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 \"Submitting your first job\": [\n [40, \"submitting-your-first-job\"]\n ],\n \"Job Definition\": [\n [40, \"job-definition\"]\n ],\n@@ -7216,61 +7143,34 @@\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- \"Administering LAVA using Docker\": [\n- [36, \"administering-lava-using-docker\"]\n- ],\n- \"Prerequisites\": [\n- [36, \"prerequisites\"]\n- ],\n- \"Docker Networking\": [\n- [36, \"docker-networking\"]\n- ],\n- \"Official LAVA Software Docker images\": [\n- [36, \"official-lava-software-docker-images\"]\n- ],\n- \"Official LAVA Releases using Docker\": [\n- [36, \"official-lava-releases-using-docker\"]\n- ],\n- \"Command lines\": [\n- [36, \"command-lines\"]\n- ],\n- \"POSIX shell\": [\n- [36, \"posix-shell\"]\n- ],\n- \"Python\": [\n- [36, \"python\"]\n- ],\n- \"lava-dispatcher in docker\": [\n- [36, \"lava-dispatcher-in-docker\"]\n- ],\n- \"Mocking up LXC inside docker\": [\n- [36, \"mocking-up-lxc-inside-docker\"]\n+ \"FVP\": [\n+ [43, \"fvp\"]\n ],\n- \"lava-server in docker\": [\n- [36, \"lava-server-in-docker\"]\n+ \"LAVA FVP Dispatcher Setup\": [\n+ [43, \"lava-fvp-dispatcher-setup\"]\n ],\n- \"LAVA Coordinator\": [\n- [36, \"lava-coordinator\"]\n+ \"FVP Binaries\": [\n+ [43, \"fvp-binaries\"]\n ],\n- \"CI images\": [\n- [36, \"ci-images\"]\n+ \"Building FVP Docker Images\": [\n+ [43, \"building-fvp-docker-images\"]\n ],\n- \"Superusers\": [\n- [36, \"superusers\"]\n+ \"Networking inside Models\": [\n+ [43, \"networking-inside-models\"]\n ],\n- \"Running lava-server & lava-dispatcher together\": [\n- [36, \"running-lava-server-lava-dispatcher-together\"]\n+ \"Reading from all model consoles\": [\n+ [43, \"reading-from-all-model-consoles\"]\n ],\n- \"Separate services in separate Docker containers\": [\n- [36, \"separate-services-in-separate-docker-containers\"]\n+ \"Glossary of terms\": [\n+ [44, \"glossary-of-terms\"]\n ],\n \"Dispatcher Action Reference\": [\n [32, \"dispatcher-action-reference\"]\n ],\n \"Deploy Actions\": [\n [32, \"deploy-actions\"]\n ],\n@@ -7285,311 +7185,170 @@\n ],\n \"reboot_to_fastboot\": [\n [32, \"reboot-to-fastboot\"]\n ],\n \"Further Examples\": [\n [32, \"further-examples\"]\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- ],\n- \"Example of deploy label substitution\": [\n- [37, \"example-of-deploy-label-substitution\"]\n- ],\n- \"Boot action for QEMU\": [\n- [37, \"boot-action-for-qemu\"]\n- ],\n- \"Test action for QEMU\": [\n- [37, \"test-action-for-qemu\"]\n- ],\n- \"Developing new classes for LAVA V2\": [\n- [25, \"developing-new-classes-for-lava-v2\"]\n- ],\n- \"Test with simple scripts\": [\n- [25, \"test-with-simple-scripts\"]\n- ],\n- \"Start with new classes\": [\n- [25, \"start-with-new-classes\"]\n- ],\n- \"Add support files for unit tests\": [\n- [25, \"add-support-files-for-unit-tests\"]\n- ],\n- \"Add unit tests\": [\n- [25, \"add-unit-tests\"]\n- ],\n- \"Run all the unit tests\": [\n- [25, \"run-all-the-unit-tests\"]\n- ],\n- \"Incorporate the test script into the classes\": [\n- [25, \"incorporate-the-test-script-into-the-classes\"]\n- ],\n- \"Check the new classes\": [\n- [25, \"check-the-new-classes\"]\n- ],\n- \"Startup achieved\": [\n- [25, \"startup-achieved\"]\n- ],\n- \"First steps using LAVA\": [\n- [17, \"first-steps-using-lava\"]\n- ],\n- \"CI with LAVA\": [\n- [17, \"ci-with-lava\"]\n- ],\n- \"Writing tests for LAVA\": [\n- [17, \"writing-tests-for-lava\"]\n- ],\n- \"Results in LAVA\": [\n- [17, \"results-in-lava\"],\n- [93, \"results-in-lava\"]\n- ],\n- \"LAVA administration guide\": [\n- [17, \"lava-administration-guide\"]\n- ],\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- \"LAVA device integration guide\": [\n- [17, \"lava-device-integration-guide\"]\n- ],\n- \"Migrating to V2\": [\n- [17, \"migrating-to-v2\"]\n- ],\n- \"Context help\": [\n- [17, \"context-help\"]\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+ \"Lava Dispatcher Design\": [\n+ [33, \"lava-dispatcher-design\"]\n ],\n- \"Javascript handling\": [\n- [22, \"javascript-handling\"]\n+ \"Pipeline Architecture\": [\n+ [33, \"pipeline-architecture\"]\n ],\n- \"Javascript and security\": [\n- [22, \"javascript-and-security\"]\n+ \"Principal changes\": [\n+ [33, \"principal-changes\"]\n ],\n- \"Javascript maintenance\": [\n- [22, \"javascript-maintenance\"]\n+ \"Objectives\": [\n+ [33, \"objectives\"]\n ],\n- \"Packaging changes\": [\n- [22, \"packaging-changes\"]\n+ \"Design\": [\n+ [33, \"design\"]\n ],\n- \"Building for other architectures\": [\n- [22, \"building-for-other-architectures\"]\n+ \"Following the code flow\": [\n+ [33, \"following-the-code-flow\"]\n ],\n- \"Debugging Django issues\": [\n- [22, \"debugging-django-issues\"]\n+ \"Pipeline construction and flow\": [\n+ [33, \"pipeline-construction-and-flow\"]\n ],\n- \"Installing\": [\n- [22, \"installing\"]\n+ \"Using strategy classes\": [\n+ [33, \"using-strategy-classes\"]\n ],\n- \"Performance overhead\": [\n- [22, \"performance-overhead\"]\n+ \"Lava test shell scripts\": [\n+ [33, \"lava-test-shell-scripts\"]\n ],\n- \"Deploying test images using LXC\": [\n- [24, \"deploying-test-images-using-lxc\"]\n+ \"Pipeline error handling\": [\n+ [33, \"pipeline-error-handling\"]\n ],\n- \"Using LXC as Device Type\": [\n- [24, \"using-lxc-as-device-type\"]\n+ \"RuntimeError Exception\": [\n+ [33, \"runtimeerror-exception\"]\n ],\n- \"Protocol elements\": [\n- [24, \"protocol-elements\"],\n- [24, \"id2\"],\n- [3, \"protocol-elements\"]\n+ \"InfrastructureError Exception\": [\n+ [33, \"infrastructureerror-exception\"]\n ],\n- \"Sample Job Definition\": [\n- [24, \"sample-job-definition\"],\n- [24, \"id3\"]\n+ \"JobError Exception\": [\n+ [33, \"joberror-exception\"]\n ],\n- \"Namespaces\": [\n- [24, \"namespaces\"]\n+ \"TestError Exception\": [\n+ [33, \"testerror-exception\"]\n ],\n- \"Using the LXC protocol to support Android\": [\n- [24, \"using-the-lxc-protocol-to-support-android\"]\n+ \"Result bundle identifiers\": [\n+ [33, \"result-bundle-identifiers\"]\n ],\n- \"LAVA Android Naming Conventions\": [\n- [24, \"lava-android-naming-conventions\"]\n+ \"Secondary media\": [\n+ [33, \"secondary-media\"],\n+ [96, \"secondary-media\"]\n ],\n- \"Requirements and Limitations\": [\n- [24, \"requirements-and-limitations\"]\n+ \"Device configuration design\": [\n+ [33, \"device-configuration-design\"]\n ],\n- \"Feedback from the device\": [\n- [24, \"feedback-from-the-device\"]\n+ \"Device Dictionary\": [\n+ [33, \"device-dictionary\"]\n ],\n- \"Differences between LXC releases\": [\n- [24, \"differences-between-lxc-releases\"]\n+ \"Exporting an existing device dictionary\": [\n+ [33, \"exporting-an-existing-device-dictionary\"]\n ],\n- \"LAVA development\": [\n- [27, \"lava-development\"]\n+ \"Reviewing an existing device dictionary\": [\n+ [33, \"reviewing-an-existing-device-dictionary\"]\n ],\n- \"Run the unit tests\": [\n- [27, \"run-the-unit-tests\"]\n+ \"Example device configuration review\": [\n+ [33, \"example-device-configuration-review\"]\n ],\n- \"Functional testing\": [\n- [27, \"functional-testing\"]\n+ \"Importing configuration using a known template\": [\n+ [33, \"importing-configuration-using-a-known-template\"]\n ],\n- \"Make your changes\": [\n- [27, \"make-your-changes\"]\n+ \"Creating a new template\": [\n+ [33, \"creating-a-new-template\"]\n ],\n- \"Source code formatting\": [\n- [27, \"source-code-formatting\"]\n+ \"Running lava-run directly\": [\n+ [33, \"running-lava-run-directly\"]\n ],\n- \"Add some unit tests\": [\n- [27, \"add-some-unit-tests\"]\n+ \"Administering LAVA using Docker\": [\n+ [36, \"administering-lava-using-docker\"]\n ],\n- \"lava_dispatcher\": [\n- [27, \"lava-dispatcher\"],\n- [27, \"id2\"]\n+ \"Prerequisites\": [\n+ [36, \"prerequisites\"]\n ],\n- \"lava_scheduler_app\": [\n- [27, \"lava-scheduler-app\"]\n+ \"Docker Networking\": [\n+ [36, \"docker-networking\"]\n ],\n- \"Re-run the unit tests\": [\n- [27, \"re-run-the-unit-tests\"]\n+ \"Official LAVA Software Docker images\": [\n+ [36, \"official-lava-software-docker-images\"]\n ],\n- \"Testing local changes\": [\n- [27, \"testing-local-changes\"]\n+ \"Official LAVA Releases using Docker\": [\n+ [36, \"official-lava-releases-using-docker\"]\n ],\n- \"lava-server-doc\": [\n- [27, \"lava-server-doc\"]\n+ \"Command lines\": [\n+ [36, \"command-lines\"]\n ],\n- \"Debugging lava-dispatcher with pdb, the Python debugger\": [\n- [27, \"debugging-lava-dispatcher-with-pdb-the-python-debugger\"]\n+ \"POSIX shell\": [\n+ [36, \"posix-shell\"]\n ],\n- \"Send your commits for review\": [\n- [27, \"send-your-commits-for-review\"]\n+ \"Python\": [\n+ [36, \"python\"]\n ],\n- \"Adding reviewers\": [\n- [27, \"adding-reviewers\"]\n+ \"lava-dispatcher in docker\": [\n+ [36, \"lava-dispatcher-in-docker\"]\n ],\n- \"Handling your local branches\": [\n- [27, \"handling-your-local-branches\"]\n+ \"Mocking up LXC inside docker\": [\n+ [36, \"mocking-up-lxc-inside-docker\"]\n ],\n- \"Future proofing\": [\n- [27, \"future-proofing\"]\n+ \"lava-server in docker\": [\n+ [36, \"lava-server-in-docker\"]\n ],\n- \"Use templates to generate device configuration\": [\n- [27, \"use-templates-to-generate-device-configuration\"]\n+ \"LAVA Coordinator\": [\n+ [36, \"lava-coordinator\"]\n ],\n- \"Database migrations\": [\n- [27, \"database-migrations\"]\n+ \"CI images\": [\n+ [36, \"ci-images\"]\n ],\n- \"Python 3.x\": [\n- [27, \"python-3-x\"]\n+ \"Superusers\": [\n+ [36, \"superusers\"]\n ],\n- \"XML-RPC changes\": [\n- [27, \"xml-rpc-changes\"]\n+ \"Running lava-server & lava-dispatcher together\": [\n+ [36, \"running-lava-server-lava-dispatcher-together\"]\n ],\n- \"Instance settings\": [\n- [27, \"instance-settings\"]\n+ \"Separate services in separate Docker containers\": [\n+ [36, \"separate-services-in-separate-docker-containers\"]\n ],\n- \"Pylint3\": [\n- [27, \"pylint3\"]\n+ \"Writing Tests\": [\n+ [26, \"writing-tests\"]\n ],\n- \"pep8\": [\n- [27, \"pep8\"]\n+ \"Introduction to the LAVA Test Developer Guide\": [\n+ [26, \"introduction-to-the-lava-test-developer-guide\"]\n ],\n- \"Unit-tests\": [\n- [27, \"unit-tests\"]\n+ \"Guide Contents\": [\n+ [26, \"guide-contents\"]\n ],\n- \"LAVA database model visualization\": [\n- [27, \"lava-database-model-visualization\"]\n+ \"Assumptions at the start of this guide\": [\n+ [26, \"assumptions-at-the-start-of-this-guide\"]\n ],\n- \"Developer access to django shell\": [\n- [27, \"developer-access-to-django-shell\"]\n+ \"Checking device availability\": [\n+ [26, \"checking-device-availability\"]\n ],\n- \"Permanency\": [\n- [31, \"permanency\"]\n+ \"Finding an image to run on the device\": [\n+ [26, \"finding-an-image-to-run-on-the-device\"]\n ],\n- \"Device sub-types\": [\n- [31, \"device-sub-types\"]\n+ \"Actions to be run for a LAVA test\": [\n+ [26, \"actions-to-be-run-for-a-lava-test\"]\n ],\n- \"Choosing a name for a device type\": [\n- [31, \"choosing-a-name-for-a-device-type\"]\n+ \"Example of Lava Test\": [\n+ [26, \"example-of-lava-test\"]\n ],\n- \"Matching the template\": [\n- [31, \"matching-the-template\"]\n+ \"Deploying a pre-built QEMU image\": [\n+ [26, \"deploying-a-pre-built-qemu-image\"]\n ],\n- \"Example device types\": [\n- [31, \"example-device-types\"]\n+ \"Using device tags\": [\n+ [26, \"using-device-tags\"]\n ],\n- \"Database elements for a device type\": [\n- [31, \"database-elements-for-a-device-type\"]\n+ \"Using checksums\": [\n+ [26, \"using-checksums\"]\n ],\n- \"Descriptive fields\": [\n- [31, \"descriptive-fields\"]\n+ \"Using Lava-Test Test Definition 1.0\": [\n+ [26, \"using-lava-test-test-definition-1-0\"]\n ],\n \"Exporting data out of LAVA\": [\n [21, \"exporting-data-out-of-lava\"]\n ],\n \"REST API\": [\n [21, \"rest-api\"]\n ],\n@@ -7691,14 +7450,209 @@\n ],\n \"Write your own event notification client\": [\n [21, \"write-your-own-event-notification-client\"]\n ],\n \"Submit a job and wait on notifications\": [\n [21, \"submit-a-job-and-wait-on-notifications\"]\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+ [16, \"connections-and-namespaces\"]\n+ ],\n+ \"Multiple serial port support\": [\n+ [16, \"multiple-serial-port-support\"]\n+ ],\n+ \"Isolating kernel messages from test output\": [\n+ [16, \"isolating-kernel-messages-from-test-output\"]\n+ ],\n+ \"Changes needed in the test image\": [\n+ [16, \"changes-needed-in-the-test-image\"]\n+ ],\n+ \"Adding extra serial ports to a test device\": [\n+ [16, \"adding-extra-serial-ports-to-a-test-device\"]\n+ ],\n+ \"Configuring serial ports\": [\n+ [16, \"configuring-serial-ports\"]\n+ ],\n+ \"Using multiple serial ports\": [\n+ [16, \"using-multiple-serial-ports\"]\n+ ],\n+ \"Example job 1: Simple beaglebone-black job with a second serial port\": [\n+ [16, \"example-job-1-simple-beaglebone-black-job-with-a-second-serial-port\"]\n+ ],\n+ \"Deploy and boot the device\": [\n+ [16, \"deploy-and-boot-the-device\"]\n+ ],\n+ \"Create the connection to the second serial port\": [\n+ [16, \"create-the-connection-to-the-second-serial-port\"],\n+ [16, \"multiple-serial-ports-example2-boot-connection\"]\n+ ],\n+ \"Tell the test shell to use the new connection\": [\n+ [16, \"tell-the-test-shell-to-use-the-new-connection\"],\n+ [16, \"multiple-serial-ports-example2-test-connection\"]\n+ ],\n+ \"Example job 2: A more complicated setup including LXC\": [\n+ [16, \"example-job-2-a-more-complicated-setup-including-lxc\"]\n+ ],\n+ \"Define the container\": [\n+ [16, \"define-the-container\"]\n+ ],\n+ \"Deploy and boot the container\": [\n+ [16, \"deploy-and-boot-the-container\"]\n+ ],\n+ \"Use the container to deploy and boot the device\": [\n+ [16, \"use-the-container-to-deploy-and-boot-the-device\"]\n+ ],\n+ \"Limitations with multiple serial ports\": [\n+ [16, \"limitations-with-multiple-serial-ports\"]\n+ ],\n+ \"Secondary Connection\": [\n+ [16, \"secondary-connection\"]\n+ ],\n+ \"Considerations with a secondary connection\": [\n+ [16, \"considerations-with-a-secondary-connection\"]\n+ ],\n+ \"Connections and hacking sessions\": [\n+ [16, \"connections-and-hacking-sessions\"]\n+ ],\n+ \"Using secondary connections with VM groups\": [\n+ [16, \"using-secondary-connections-with-vm-groups\"]\n+ ],\n+ \"Sequence\": [\n+ [16, \"sequence\"]\n+ ],\n+ \"Basic use cases\": [\n+ [16, \"basic-use-cases\"]\n+ ],\n+ \"Sample job definition for the VM job\": [\n+ [16, \"sample-job-definition-for-the-vm-job\"]\n+ ],\n+ \"Primary remote connection\": [\n+ [16, \"primary-remote-connection\"]\n+ ],\n+ \"Devices supporting Primary Remote Connections\": [\n+ [16, \"devices-supporting-primary-remote-connections\"]\n+ ],\n+ \"SSH as the primary remote connection\": [\n+ [16, \"ssh-as-the-primary-remote-connection\"]\n+ ],\n+ \"Security\": [\n+ [16, \"security\"]\n+ ],\n+ \"Persistence\": [\n+ [16, \"persistence\"]\n+ ],\n+ \"Disposable chroot deployments\": [\n+ [16, \"disposable-chroot-deployments\"]\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+ ],\n+ \"About the Contribution Guidelines\": [\n+ [18, \"about-the-contribution-guidelines\"]\n+ ],\n+ \"Conflicting priorities\": [\n+ [18, \"conflicting-priorities\"]\n+ ],\n+ \"Pre-requisites to start with development\": [\n+ [18, \"pre-requisites-to-start-with-development\"]\n+ ],\n+ \"Other elements involved in LAVA development\": [\n+ [18, \"other-elements-involved-in-lava-development\"]\n+ ],\n+ \"Updating online documentation\": [\n+ [18, \"updating-online-documentation\"]\n+ ],\n+ \"The LAVA contribution process\": [\n+ [18, \"the-lava-contribution-process\"]\n+ ],\n+ \"Creating a GitLab Account\": [\n+ [18, \"creating-a-gitlab-account\"]\n+ ],\n+ \"Request GitLab Fork Permissions\": [\n+ [18, \"request-gitlab-fork-permissions\"]\n+ ],\n+ \"Fork the code\": [\n+ [18, \"fork-the-code\"]\n+ ],\n+ \"Access to the CI runners\": [\n+ [18, \"access-to-the-ci-runners\"]\n+ ],\n+ \"Create a development branch\": [\n+ [18, \"create-a-development-branch\"]\n+ ],\n+ \"Make, test and commit your changes\": [\n+ [18, \"make-test-and-commit-your-changes\"]\n+ ],\n+ \"Push your changes to your development branch\": [\n+ [18, \"push-your-changes-to-your-development-branch\"]\n+ ],\n+ \"Submit a Merge Request (MR)\": [\n+ [18, \"submit-a-merge-request-mr\"]\n+ ],\n+ \"MRs are reviewed (and rebased and reworked as needed)\": [\n+ [18, \"mrs-are-reviewed-and-rebased-and-reworked-as-needed\"]\n+ ],\n+ \"How changes get merged\": [\n+ [18, \"how-changes-get-merged\"]\n+ ],\n+ \"Custom result handling\": [\n+ [20, \"custom-result-handling\"]\n+ ],\n+ \"Closing the CI loop\": [\n+ [20, \"closing-the-ci-loop\"]\n+ ],\n+ \"Important features of a CI loop\": [\n+ [20, \"important-features-of-a-ci-loop\"]\n+ ],\n+ \"Where LAVA fits into the testing\": [\n+ [20, \"where-lava-fits-into-the-testing\"]\n+ ],\n+ \"Splitting the testing\": [\n+ [20, \"splitting-the-testing\"]\n+ ],\n+ \"Questions to ask\": [\n+ [20, \"questions-to-ask\"]\n+ ],\n+ \"KernelCI.org\": [\n+ [20, \"kernelci-org\"]\n+ ],\n+ \"SQUAD\": [\n+ [20, \"squad\"]\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+ \"Ways to contribute\": [\n+ [19, \"ways-to-contribute\"]\n+ ],\n+ \"Documentation\": [\n+ [19, \"documentation\"]\n+ ],\n+ \"Issue Tracker\": [\n+ [19, \"issue-tracker\"]\n+ ],\n+ \"Bug Fixes and New Features\": [\n+ [19, \"bug-fixes-and-new-features\"]\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@@ -7792,97 +7746,19 @@\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- \"Writing Tests\": [\n- [26, \"writing-tests\"]\n- ],\n- \"Introduction to the LAVA Test Developer Guide\": [\n- [26, \"introduction-to-the-lava-test-developer-guide\"]\n- ],\n- \"Guide Contents\": [\n- [26, \"guide-contents\"]\n- ],\n- \"Assumptions at the start of this guide\": [\n- [26, \"assumptions-at-the-start-of-this-guide\"]\n- ],\n- \"Checking device availability\": [\n- [26, \"checking-device-availability\"]\n- ],\n- \"Finding an image to run on the device\": [\n- [26, \"finding-an-image-to-run-on-the-device\"]\n- ],\n- \"Actions to be run for a LAVA test\": [\n- [26, \"actions-to-be-run-for-a-lava-test\"]\n- ],\n- \"Example of Lava Test\": [\n- [26, \"example-of-lava-test\"]\n- ],\n- \"Deploying a pre-built QEMU image\": [\n- [26, \"deploying-a-pre-built-qemu-image\"]\n- ],\n- \"Using device tags\": [\n- [26, \"using-device-tags\"]\n- ],\n- \"Using checksums\": [\n- [26, \"using-checksums\"]\n- ],\n- \"Using Lava-Test Test Definition 1.0\": [\n- [26, \"using-lava-test-test-definition-1-0\"]\n- ],\n- \"About the Contribution Guidelines\": [\n- [18, \"about-the-contribution-guidelines\"]\n- ],\n- \"Conflicting priorities\": [\n- [18, \"conflicting-priorities\"]\n- ],\n- \"Pre-requisites to start with development\": [\n- [18, \"pre-requisites-to-start-with-development\"]\n- ],\n- \"Other elements involved in LAVA development\": [\n- [18, \"other-elements-involved-in-lava-development\"]\n- ],\n- \"Updating online documentation\": [\n- [18, \"updating-online-documentation\"]\n- ],\n- \"The LAVA contribution process\": [\n- [18, \"the-lava-contribution-process\"]\n- ],\n- \"Creating a GitLab Account\": [\n- [18, \"creating-a-gitlab-account\"]\n- ],\n- \"Request GitLab Fork Permissions\": [\n- [18, \"request-gitlab-fork-permissions\"]\n- ],\n- \"Fork the code\": [\n- [18, \"fork-the-code\"]\n- ],\n- \"Access to the CI runners\": [\n- [18, \"access-to-the-ci-runners\"]\n- ],\n- \"Create a development branch\": [\n- [18, \"create-a-development-branch\"]\n- ],\n- \"Make, test and commit your changes\": [\n- [18, \"make-test-and-commit-your-changes\"]\n- ],\n- \"Push your changes to your development branch\": [\n- [18, \"push-your-changes-to-your-development-branch\"]\n- ],\n- \"Submit a Merge Request (MR)\": [\n- [18, \"submit-a-merge-request-mr\"]\n- ],\n- \"MRs are reviewed (and rebased and reworked as needed)\": [\n- [18, \"mrs-are-reviewed-and-rebased-and-reworked-as-needed\"]\n+ \"Device Capabilities Support\": [\n+ [29, \"device-capabilities-support\"]\n ],\n- \"How changes get merged\": [\n- [18, \"how-changes-get-merged\"]\n+ \"Device owner abilities\": [\n+ [29, \"device-owner-abilities\"]\n ],\n \"Debugging LAVA test failures\": [\n [23, \"debugging-lava-test-failures\"]\n ],\n \"Read the logs\": [\n [23, \"index-1\"]\n ],\n@@ -7948,567 +7824,490 @@\n ],\n \"Check that your message ID labels are consistent\": [\n [23, \"check-that-your-message-id-labels-are-consistent\"]\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 ],\n- \"Custom result handling\": [\n- [20, \"custom-result-handling\"]\n+ \"Deploying test images using LXC\": [\n+ [24, \"deploying-test-images-using-lxc\"]\n ],\n- \"Closing the CI loop\": [\n- [20, \"closing-the-ci-loop\"]\n+ \"Using LXC as Device Type\": [\n+ [24, \"using-lxc-as-device-type\"]\n ],\n- \"Important features of a CI loop\": [\n- [20, \"important-features-of-a-ci-loop\"]\n+ \"Protocol elements\": [\n+ [24, \"protocol-elements\"],\n+ [24, \"id2\"],\n+ [3, \"protocol-elements\"]\n ],\n- \"Where LAVA fits into the testing\": [\n- [20, \"where-lava-fits-into-the-testing\"]\n+ \"Sample Job Definition\": [\n+ [24, \"sample-job-definition\"],\n+ [24, \"id3\"]\n ],\n- \"Splitting the testing\": [\n- [20, \"splitting-the-testing\"]\n+ \"Namespaces\": [\n+ [24, \"namespaces\"]\n ],\n- \"Questions to ask\": [\n- [20, \"questions-to-ask\"]\n+ \"Using the LXC protocol to support Android\": [\n+ [24, \"using-the-lxc-protocol-to-support-android\"]\n ],\n- \"KernelCI.org\": [\n- [20, \"kernelci-org\"]\n+ \"LAVA Android Naming Conventions\": [\n+ [24, \"lava-android-naming-conventions\"]\n ],\n- \"SQUAD\": [\n- [20, \"squad\"]\n+ \"Requirements and Limitations\": [\n+ [24, \"requirements-and-limitations\"]\n ],\n- \"LAVA Software Project Contribution - Introduction\": [\n- [19, \"lava-software-project-contribution-introduction\"]\n+ \"Feedback from the device\": [\n+ [24, \"feedback-from-the-device\"]\n ],\n- \"Before you start\": [\n- [19, \"before-you-start\"]\n+ \"Differences between LXC releases\": [\n+ [24, \"differences-between-lxc-releases\"]\n ],\n- \"Ways to contribute\": [\n- [19, \"ways-to-contribute\"]\n+ \"Permanency\": [\n+ [31, \"permanency\"]\n ],\n- \"Documentation\": [\n- [19, \"documentation\"]\n+ \"Device sub-types\": [\n+ [31, \"device-sub-types\"]\n ],\n- \"Issue Tracker\": [\n- [19, \"issue-tracker\"]\n+ \"Choosing a name for a device type\": [\n+ [31, \"choosing-a-name-for-a-device-type\"]\n ],\n- \"Bug Fixes and New Features\": [\n- [19, \"bug-fixes-and-new-features\"]\n+ \"Matching the template\": [\n+ [31, \"matching-the-template\"]\n ],\n- \"Contributing to the functional testing\": [\n- [19, \"contributing-to-the-functional-testing\"]\n+ \"Example device types\": [\n+ [31, \"example-device-types\"]\n ],\n- \"Mailing lists and IRC\": [\n- [19, \"mailing-lists-and-irc\"]\n+ \"Database elements for a device type\": [\n+ [31, \"database-elements-for-a-device-type\"]\n ],\n- \"Connections in device configuration\": [\n- [16, \"connections-in-device-configuration\"]\n+ \"Descriptive fields\": [\n+ [31, \"descriptive-fields\"]\n ],\n- \"Connections in test jobs\": [\n- [16, \"connections-in-test-jobs\"]\n+ \"LAVA development\": [\n+ [27, \"lava-development\"]\n ],\n- \"Connections and namespaces\": [\n- [16, \"connections-and-namespaces\"]\n+ \"Run the unit tests\": [\n+ [27, \"run-the-unit-tests\"]\n ],\n- \"Multiple serial port support\": [\n- [16, \"multiple-serial-port-support\"]\n+ \"Functional testing\": [\n+ [27, \"functional-testing\"]\n ],\n- \"Isolating kernel messages from test output\": [\n- [16, \"isolating-kernel-messages-from-test-output\"]\n+ \"Make your changes\": [\n+ [27, \"make-your-changes\"]\n ],\n- \"Changes needed in the test image\": [\n- [16, \"changes-needed-in-the-test-image\"]\n+ \"Source code formatting\": [\n+ [27, \"source-code-formatting\"]\n ],\n- \"Adding extra serial ports to a test device\": [\n- [16, \"adding-extra-serial-ports-to-a-test-device\"]\n+ \"Add some unit tests\": [\n+ [27, \"add-some-unit-tests\"]\n ],\n- \"Configuring serial ports\": [\n- [16, \"configuring-serial-ports\"]\n+ \"lava_dispatcher\": [\n+ [27, \"lava-dispatcher\"],\n+ [27, \"id2\"]\n ],\n- \"Using multiple serial ports\": [\n- [16, \"using-multiple-serial-ports\"]\n+ \"lava_scheduler_app\": [\n+ [27, \"lava-scheduler-app\"]\n ],\n- \"Example job 1: Simple beaglebone-black job with a second serial port\": [\n- [16, \"example-job-1-simple-beaglebone-black-job-with-a-second-serial-port\"]\n+ \"Re-run the unit tests\": [\n+ [27, \"re-run-the-unit-tests\"]\n ],\n- \"Deploy and boot the device\": [\n- [16, \"deploy-and-boot-the-device\"]\n+ \"Testing local changes\": [\n+ [27, \"testing-local-changes\"]\n ],\n- \"Create the connection to the second serial port\": [\n- [16, \"create-the-connection-to-the-second-serial-port\"],\n- [16, \"multiple-serial-ports-example2-boot-connection\"]\n+ \"lava-server-doc\": [\n+ [27, \"lava-server-doc\"]\n ],\n- \"Tell the test shell to use the new connection\": [\n- [16, \"tell-the-test-shell-to-use-the-new-connection\"],\n- [16, \"multiple-serial-ports-example2-test-connection\"]\n+ \"Debugging lava-dispatcher with pdb, the Python debugger\": [\n+ [27, \"debugging-lava-dispatcher-with-pdb-the-python-debugger\"]\n ],\n- \"Example job 2: A more complicated setup including LXC\": [\n- [16, \"example-job-2-a-more-complicated-setup-including-lxc\"]\n+ \"Send your commits for review\": [\n+ [27, \"send-your-commits-for-review\"]\n ],\n- \"Define the container\": [\n- [16, \"define-the-container\"]\n+ \"Adding reviewers\": [\n+ [27, \"adding-reviewers\"]\n ],\n- \"Deploy and boot the container\": [\n- [16, \"deploy-and-boot-the-container\"]\n+ \"Handling your local branches\": [\n+ [27, \"handling-your-local-branches\"]\n ],\n- \"Use the container to deploy and boot the device\": [\n- [16, \"use-the-container-to-deploy-and-boot-the-device\"]\n+ \"Future proofing\": [\n+ [27, \"future-proofing\"]\n ],\n- \"Limitations with multiple serial ports\": [\n- [16, \"limitations-with-multiple-serial-ports\"]\n+ \"Use templates to generate device configuration\": [\n+ [27, \"use-templates-to-generate-device-configuration\"]\n ],\n- \"Secondary Connection\": [\n- [16, \"secondary-connection\"]\n+ \"Database migrations\": [\n+ [27, \"database-migrations\"]\n ],\n- \"Considerations with a secondary connection\": [\n- [16, \"considerations-with-a-secondary-connection\"]\n+ \"Python 3.x\": [\n+ [27, \"python-3-x\"]\n ],\n- \"Connections and hacking sessions\": [\n- [16, \"connections-and-hacking-sessions\"]\n+ \"XML-RPC changes\": [\n+ [27, \"xml-rpc-changes\"]\n ],\n- \"Using secondary connections with VM groups\": [\n- [16, \"using-secondary-connections-with-vm-groups\"]\n+ \"Instance settings\": [\n+ [27, \"instance-settings\"]\n ],\n- \"Sequence\": [\n- [16, \"sequence\"]\n+ \"Pylint3\": [\n+ [27, \"pylint3\"]\n ],\n- \"Basic use cases\": [\n- [16, \"basic-use-cases\"]\n+ \"pep8\": [\n+ [27, \"pep8\"]\n ],\n- \"Sample job definition for the VM job\": [\n- [16, \"sample-job-definition-for-the-vm-job\"]\n+ \"Unit-tests\": [\n+ [27, \"unit-tests\"]\n ],\n- \"Primary remote connection\": [\n- [16, \"primary-remote-connection\"]\n+ \"LAVA database model visualization\": [\n+ [27, \"lava-database-model-visualization\"]\n ],\n- \"Devices supporting Primary Remote Connections\": [\n- [16, \"devices-supporting-primary-remote-connections\"]\n+ \"Developer access to django shell\": [\n+ [27, \"developer-access-to-django-shell\"]\n ],\n- \"SSH as the primary remote connection\": [\n- [16, \"ssh-as-the-primary-remote-connection\"]\n+ \"Developing new classes for LAVA V2\": [\n+ [25, \"developing-new-classes-for-lava-v2\"]\n ],\n- \"Security\": [\n- [16, \"security\"]\n+ \"Test with simple scripts\": [\n+ [25, \"test-with-simple-scripts\"]\n ],\n- \"Persistence\": [\n- [16, \"persistence\"]\n+ \"Start with new classes\": [\n+ [25, \"start-with-new-classes\"]\n ],\n- \"Disposable chroot deployments\": [\n- [16, \"disposable-chroot-deployments\"]\n+ \"Add support files for unit tests\": [\n+ [25, \"add-support-files-for-unit-tests\"]\n ],\n- \"Device Capabilities Support\": [\n- [29, \"device-capabilities-support\"]\n+ \"Add unit tests\": [\n+ [25, \"add-unit-tests\"]\n ],\n- \"Device owner abilities\": [\n- [29, \"device-owner-abilities\"]\n+ \"Run all the unit tests\": [\n+ [25, \"run-all-the-unit-tests\"]\n ],\n- \"Deploying LXC devices\": [\n- [8, \"deploying-lxc-devices\"]\n+ \"Incorporate the test script into the classes\": [\n+ [25, \"incorporate-the-test-script-into-the-classes\"]\n ],\n- \"Prerequisite\": [\n- [8, \"prerequisite\"]\n+ \"Check the new classes\": [\n+ [25, \"check-the-new-classes\"]\n ],\n- \"Android testing with LXC support\": [\n- [8, \"android-testing-with-lxc-support\"]\n+ \"Startup achieved\": [\n+ [25, \"startup-achieved\"]\n ],\n- \"Arbitrary external devices needing LXC support\": [\n- [8, \"arbitrary-external-devices-needing-lxc-support\"]\n+ \"First steps using LAVA\": [\n+ [17, \"first-steps-using-lava\"]\n ],\n- \"USB attached devices\": [\n- [8, \"usb-attached-devices\"]\n+ \"CI with LAVA\": [\n+ [17, \"ci-with-lava\"]\n ],\n- \"Other related devices\": [\n- [8, \"other-related-devices\"]\n+ \"Writing tests for LAVA\": [\n+ [17, \"writing-tests-for-lava\"]\n ],\n- \"Persistent Containers\": [\n- [8, \"persistent-containers\"]\n+ \"Results in LAVA\": [\n+ [17, \"results-in-lava\"],\n+ [93, \"results-in-lava\"]\n ],\n- \"Unprivileged containers as root\": [\n- [8, \"unprivileged-containers-as-root\"]\n+ \"LAVA administration guide\": [\n+ [17, \"lava-administration-guide\"]\n ],\n- \"Other resources\": [\n- [8, \"other-resources\"]\n+ \"LAVA device integration guide\": [\n+ [17, \"lava-device-integration-guide\"]\n ],\n- \"Protocol Reference\": [\n- [3, \"protocol-reference\"]\n+ \"Migrating to V2\": [\n+ [17, \"migrating-to-v2\"]\n ],\n- \"Using protocols from actions\": [\n- [3, \"using-protocols-from-actions\"]\n+ \"Context help\": [\n+ [17, \"context-help\"]\n ],\n- \"MultiNode Protocol\": [\n- [3, \"multinode-protocol\"]\n+ \"Developing LAVA on Debian\": [\n+ [22, \"developing-lava-on-debian\"]\n ],\n- \"lava-start API call\": [\n- [3, \"lava-start-api-call\"]\n+ \"Why Debian?\": [\n+ [22, \"why-debian\"]\n ],\n- \"Passing data at startup\": [\n- [3, \"passing-data-at-startup\"]\n+ \"Options for other distributions\": [\n+ [22, \"options-for-other-distributions\"]\n ],\n- \"Managing flow using inline definitions\": [\n- [3, \"managing-flow-using-inline-definitions\"]\n+ \"Preparing for LAVA development\": [\n+ [22, \"preparing-for-lava-development\"]\n ],\n- \"Marking some roles as essential\": [\n- [3, \"marking-some-roles-as-essential\"]\n+ \"Developer package build\": [\n+ [22, \"developer-package-build\"]\n ],\n- \"Protocol requests from actions\": [\n- [3, \"protocol-requests-from-actions\"],\n- [3, \"vland-protocol-requests\"],\n- [3, \"lxc-protocol-requests\"]\n+ \"Changes from 2018.10 onwards\": [\n+ [22, \"changes-from-2018-10-onwards\"]\n ],\n- \"VLANd protocol\": [\n- [3, \"vland-protocol\"]\n+ \"Which branch to use for changes\": [\n+ [22, \"which-branch-to-use-for-changes\"]\n ],\n- \"LXC protocol\": [\n- [3, \"lxc-protocol\"]\n+ \"Local version strings\": [\n+ [22, \"local-version-strings\"]\n ],\n- \"Timeout Reference\": [\n- [6, \"timeout-reference\"]\n+ \"Distribution differences\": [\n+ [22, \"distribution-differences\"]\n ],\n- \"Job timeout\": [\n- [6, \"job-timeout\"]\n+ \"Example\": [\n+ [22, \"example\"],\n+ [0, \"example\"]\n ],\n- \"Action timeout\": [\n- [6, \"action-timeout\"]\n+ \"Developer build versions\": [\n+ [22, \"developer-build-versions\"]\n ],\n- \"Individual action timeouts\": [\n- [6, \"individual-action-timeouts\"]\n+ \"Development using Python3\": [\n+ [22, \"development-using-python3\"]\n ],\n- \"Connection timeout\": [\n- [6, \"connection-timeout\"]\n+ \"Quick fixes and testing\": [\n+ [22, \"quick-fixes-and-testing\"]\n ],\n- \"Individual connection timeouts\": [\n- [6, \"individual-connection-timeouts\"]\n+ \"Viewing changes\": [\n+ [22, \"viewing-changes\"]\n ],\n- \"Deploy Action Reference\": [\n- [2, \"deploy-action-reference\"]\n+ \"Migrating postgresql versions\": [\n+ [22, \"migrating-postgresql-versions\"]\n ],\n- \"Deploy action roles\": [\n- [2, \"deploy-action-roles\"]\n+ \"Determining the active cluster\": [\n+ [22, \"determining-the-active-cluster\"]\n ],\n- \"Required parameters\": [\n- [2, \"required-parameters\"]\n+ \"Performing the migration\": [\n+ [22, \"performing-the-migration\"]\n ],\n- \"Overlays\": [\n- [2, \"overlays\"]\n+ \"Dependency Requirements\": [\n+ [22, \"dependency-requirements\"]\n ],\n- \"Parameter List\": [\n- [2, \"parameter-list\"]\n+ \"Outputting the requirements.txt format\": [\n+ [22, \"outputting-the-requirements-txt-format\"]\n ],\n- \"to: docker\": [\n- [2, \"to-docker\"]\n+ \"Outputting a list of binary package names\": [\n+ [22, \"outputting-a-list-of-binary-package-names\"]\n ],\n- \"os\": [\n- [2, \"os\"]\n+ \"Adding packages needed for the unittests\": [\n+ [22, \"adding-packages-needed-for-the-unittests\"]\n ],\n- \"image\": [\n- [2, \"image\"]\n+ \"Javascript handling\": [\n+ [22, \"javascript-handling\"]\n ],\n- \"name\": [\n- [2, \"name\"],\n- [5, \"name\"],\n- [5, \"id2\"],\n- [5, \"id3\"]\n+ \"Javascript and security\": [\n+ [22, \"javascript-and-security\"]\n ],\n- \"local\": [\n- [2, \"local\"]\n+ \"Javascript maintenance\": [\n+ [22, \"javascript-maintenance\"]\n ],\n- \"to: download\": [\n- [2, \"to-download\"]\n+ \"Packaging changes\": [\n+ [22, \"packaging-changes\"]\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+ \"Building for other architectures\": [\n+ [22, \"building-for-other-architectures\"]\n ],\n- \"label\": [\n- [2, \"label\"],\n- [2, \"deploy-to-tmpfs-images-label\"]\n+ \"Debugging Django issues\": [\n+ [22, \"debugging-django-issues\"]\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+ \"Installing\": [\n+ [22, \"installing\"]\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+ \"Performance overhead\": [\n+ [22, \"performance-overhead\"]\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+ \"User permissions and authorization\": [\n+ [12, \"user-permissions-and-authorization\"]\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+ \"Global authorization\": [\n+ [12, \"global-authorization\"]\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+ \"Per-object authorization\": [\n+ [12, \"per-object-authorization\"]\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+ \"Permission inheritance\": [\n+ [12, \"permission-inheritance\"]\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+ \"Anonymous users vs authenticated users\": [\n+ [12, \"anonymous-users-vs-authenticated-users\"]\n ],\n- \"sha512sum\": [\n- [2, \"sha512sum\"],\n- [2, \"id6\"],\n- [2, \"id27\"],\n- [2, \"id56\"],\n- [2, \"id78\"]\n+ \"Test job specifics on visibility\": [\n+ [12, \"test-job-specifics-on-visibility\"]\n ],\n- \"to: fastboot\": [\n- [2, \"to-fastboot\"]\n+ \"Setup\": [\n+ [12, \"setup\"]\n ],\n- \"partition\": [\n- [2, \"partition\"],\n- [2, \"id71\"]\n+ \"Data migration\": [\n+ [12, \"data-migration\"]\n ],\n- \"reboot\": [\n- [2, \"reboot\"]\n+ \"Visibility decision trees\": [\n+ [12, \"visibility-decision-trees\"]\n ],\n- \"apply-overlay\": [\n- [2, \"apply-overlay\"],\n- [2, \"deploy-to-uuu-images-apply-overlay\"]\n+ \"LAVA Software Community Project Code of Conduct\": [\n+ [15, \"lava-software-community-project-code-of-conduct\"]\n ],\n- \"sparse\": [\n- [2, \"sparse\"],\n- [2, \"deploy-to-uuu-images-sparse\"]\n+ \"Be respectful\": [\n+ [15, \"be-respectful\"]\n ],\n- \"to: fvp\": [\n- [2, \"to-fvp\"]\n+ \"Assume good faith\": [\n+ [15, \"assume-good-faith\"]\n ],\n- \"overlays\": [\n- [2, \"id9\"]\n+ \"Be collaborative\": [\n+ [15, \"be-collaborative\"]\n ],\n- \"partition *\": [\n- [2, \"id10\"]\n+ \"Try to be concise\": [\n+ [15, \"try-to-be-concise\"]\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+ \"Be open\": [\n+ [15, \"be-open\"]\n ],\n- \"to: iso-installer\": [\n- [2, \"to-iso-installer\"]\n+ \"In case of problems\": [\n+ [15, \"in-case-of-problems\"]\n ],\n- \"iso\": [\n- [2, \"iso\"],\n- [2, \"deploy-to-iso-installer-iso\"]\n+ \"Boot Action Reference\": [\n+ [0, \"boot-action-reference\"]\n ],\n- \"image_arg\": [\n- [2, \"image-arg\"],\n- [2, \"deploy-to-tmpfs-images-image-arg\"]\n+ \"auto_login\": [\n+ [0, \"auto-login\"]\n ],\n- \"preseed\": [\n- [2, \"preseed\"]\n+ \"login_prompt\": [\n+ [0, \"login-prompt\"]\n ],\n- \"kernel\": [\n- [2, \"kernel\"],\n- [2, \"deploy-to-nbd-kernel\"],\n- [2, \"deploy-to-tftp-kernel\"]\n+ \"username\": [\n+ [0, \"username\"]\n ],\n- \"initrd\": [\n- [2, \"initrd\"],\n- [2, \"deploy-to-nbd-initrd\"]\n+ \"password_prompt\": [\n+ [0, \"password-prompt\"]\n ],\n- \"console\": [\n- [2, \"console\"]\n+ \"password\": [\n+ [0, \"password\"]\n ],\n- \"installation_size\": [\n- [2, \"installation-size\"]\n+ \"login_commands\": [\n+ [0, \"login-commands\"]\n ],\n- \"to: lxc\": [\n- [2, \"to-lxc\"]\n+ \"prompts\": [\n+ [0, \"prompts\"],\n+ [5, \"prompts\"]\n ],\n- \"packages\": [\n- [2, \"packages\"]\n+ \"connection\": [\n+ [0, \"connection\"],\n+ [2, \"connection\"]\n ],\n- \"to: musca\": [\n- [2, \"to-musca\"]\n+ \"connection-namespace\": [\n+ [0, \"connection-namespace\"]\n ],\n- \"test_binary\": [\n- [2, \"test-binary\"],\n- [2, \"deploy-to-mps-test-binary\"]\n+ \"commands\": [\n+ [0, \"commands\"],\n+ [0, \"boot-method-u-boot-commands\"]\n ],\n- \"to: nbd\": [\n- [2, \"to-nbd\"]\n+ \"Specifying commands in full\": [\n+ [0, \"specifying-commands-in-full\"]\n ],\n- \"type\": [\n- [2, \"type\"],\n- [2, \"deploy-to-tftp-kernel-type\"]\n+ \"Appending to the kernel command line\": [\n+ [0, \"appending-to-the-kernel-command-line\"]\n ],\n- \"Supported types\": [\n- [2, null],\n- [2, null]\n+ \"failure_message\": [\n+ [0, \"failure-message\"]\n ],\n- \"dtb\": [\n- [2, \"dtb\"],\n- [2, \"deploy-to-tftp-dtb\"]\n+ \"method\": [\n+ [0, \"method\"]\n ],\n- \"modules\": [\n- [2, \"modules\"],\n- [2, \"deploy-to-tftp-modules\"]\n+ \"bootloader\": [\n+ [0, \"bootloader\"]\n ],\n- \"nbdroot\": [\n- [2, \"nbdroot\"]\n+ \"cmsis-dap\": [\n+ [0, \"cmsis-dap\"]\n ],\n- \"to: recovery\": [\n- [2, \"to-recovery\"]\n+ \"depthcharge\": [\n+ [0, \"depthcharge\"]\n ],\n- \"to: sata\": [\n- [2, \"to-sata\"]\n+ \"docker\": [\n+ [0, \"docker\"]\n ],\n- \"kernel *\": [\n- [2, \"deploy-to-sata-kernel\"],\n- [2, \"deploy-to-usb-kernel\"]\n+ \"command\": [\n+ [0, \"command\"]\n ],\n- \"dtb *\": [\n- [2, \"deploy-to-sata-dtb\"],\n- [2, \"deploy-to-usb-dtb\"]\n+ \"fastboot\": [\n+ [0, \"fastboot\"]\n ],\n- \"UUID *\": [\n- [2, \"uuid\"],\n- [2, \"deploy-to-usb-uuid\"]\n+ \"fastboot boot commands\": [\n+ [0, \"fastboot-boot-commands\"]\n ],\n- \"boot_part *\": [\n- [2, \"boot-part\"],\n- [2, \"deploy-to-usb-boot-part\"]\n+ \"fastboot-nfs\": [\n+ [0, \"fastboot-nfs\"]\n ],\n- \"to: ssh\": [\n- [2, \"to-ssh\"]\n+ \"fvp\": [\n+ [0, \"fvp\"]\n ],\n- \"connection\": [\n- [2, \"connection\"],\n- [0, \"connection\"]\n+ \"grub\": [\n+ [0, \"grub\"]\n ],\n- \"protocols\": [\n- [2, \"protocols\"]\n+ \"grub-efi\": [\n+ [0, \"grub-efi\"]\n ],\n- \"to: tftp\": [\n- [2, \"to-tftp\"]\n+ \"ipxe\": [\n+ [0, \"ipxe\"]\n ],\n- \"header\": [\n- [2, \"header\"]\n+ \"lxc\": [\n+ [0, \"lxc\"]\n ],\n- \"nfsrootfs\": [\n- [2, \"nfsrootfs\"]\n+ \"openocd\": [\n+ [0, \"openocd\"]\n ],\n- \"persistent_nfs\": [\n- [2, \"persistent-nfs\"]\n+ \"minimal\": [\n+ [0, \"minimal\"]\n ],\n- \"Known Caveats\": [\n- [2, null]\n+ \"musca\": [\n+ [0, \"musca\"]\n ],\n- \"address *\": [\n- [2, \"address\"]\n+ \"pyocd\": [\n+ [0, \"pyocd\"]\n ],\n- \"to: tmpfs\": [\n- [2, \"to-tmpfs\"]\n+ \"jlink\": [\n+ [0, \"jlink\"]\n ],\n- \"to: usb\": [\n- [2, \"to-usb\"]\n+ \"new_connection\": [\n+ [0, \"new-connection\"]\n ],\n- \"to: vemsd\": [\n- [2, \"to-vemsd\"]\n+ \"qemu\": [\n+ [0, \"qemu\"]\n ],\n- \"recovery_image\": [\n- [2, \"recovery-image\"],\n- [2, \"id65\"]\n+ \"media\": [\n+ [0, \"media\"],\n+ [0, \"boot-method-qemu-media-nfs\"],\n+ [0, \"boot-method-qemu-iso-media\"]\n ],\n- \"to: mps\": [\n- [2, \"to-mps\"]\n+ \"qemu-nfs\": [\n+ [0, \"qemu-nfs\"]\n ],\n- \"rename\": [\n- [2, \"rename\"]\n+ \"qemu-iso\": [\n+ [0, \"qemu-iso\"]\n ],\n- \"to: uuu\": [\n- [2, \"to-uuu\"]\n+ \"transfer_overlay\": [\n+ [0, \"transfer-overlay\"]\n ],\n- \"os *\": [\n- [2, \"deploy-os\"]\n+ \"Deployment differences\": [\n+ [0, \"deployment-differences\"]\n ],\n- \"Enabling Secondary Media\": [\n- [9, \"enabling-secondary-media\"]\n+ \"u-boot\": [\n+ [0, \"u-boot\"]\n+ ],\n+ \"uefi-menu\": [\n+ [0, \"uefi-menu\"]\n+ ],\n+ \"uuu\": [\n+ [0, \"uuu\"]\n+ ],\n+ \"Installation\": [\n+ [0, \"installation\"]\n ],\n \"Device configuration\": [\n- [9, \"device-configuration\"],\n- [0, \"device-configuration\"]\n+ [0, \"device-configuration\"],\n+ [9, \"device-configuration\"]\n+ ],\n+ \"Usage\": [\n+ [0, \"usage\"]\n+ ],\n+ \"Using built-in scripts\": [\n+ [0, \"using-built-in-scripts\"]\n+ ],\n+ \"Using commands\": [\n+ [0, \"using-commands\"]\n+ ],\n+ \"BCU Integration\": [\n+ [0, \"bcu-integration\"]\n+ ],\n+ \"Enabling Secondary Media\": [\n+ [9, \"enabling-secondary-media\"]\n ],\n \"Identifying secondary media\": [\n [9, \"identifying-secondary-media\"]\n ],\n \"Secondary media configuration\": [\n [9, \"secondary-media-configuration\"]\n ],\n@@ -8533,85 +8332,88 @@\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- \"User permissions and authorization\": [\n- [12, \"user-permissions-and-authorization\"]\n+ \"Test Action Reference\": [\n+ [5, \"test-action-reference\"]\n ],\n- \"Global authorization\": [\n- [12, \"global-authorization\"]\n+ \"repository\": [\n+ [5, \"repository\"]\n ],\n- \"Per-object authorization\": [\n- [12, \"per-object-authorization\"]\n+ \"from\": [\n+ [5, \"from\"]\n ],\n- \"Permission inheritance\": [\n- [12, \"permission-inheritance\"]\n+ \"git\": [\n+ [5, \"git\"]\n ],\n- \"Anonymous users vs authenticated users\": [\n- [12, \"anonymous-users-vs-authenticated-users\"]\n+ \"inline\": [\n+ [5, \"inline\"]\n ],\n- \"Test job specifics on visibility\": [\n- [12, \"test-job-specifics-on-visibility\"]\n+ \"path\": [\n+ [5, \"path\"]\n ],\n- \"Setup\": [\n- [12, \"setup\"]\n+ \"name\": [\n+ [5, \"name\"],\n+ [5, \"id2\"],\n+ [5, \"id3\"],\n+ [2, \"name\"]\n ],\n- \"Data migration\": [\n- [12, \"data-migration\"]\n+ \"params\": [\n+ [5, \"params\"]\n ],\n- \"Visibility decision trees\": [\n- [12, \"visibility-decision-trees\"]\n+ \"Skipping elements of test definitions\": [\n+ [5, \"skipping-elements-of-test-definitions\"]\n ],\n- \"Creating Backups\": [\n- [7, \"creating-backups\"]\n+ \"deps\": [\n+ [5, \"deps\"]\n ],\n- \"Dependencies within backups\": [\n- [7, \"dependencies-within-backups\"]\n+ \"keys\": [\n+ [5, \"keys\"]\n ],\n- \"Issues with the base suite\": [\n- [7, \"issues-with-the-base-suite\"]\n+ \"sources\": [\n+ [5, \"sources\"]\n ],\n- \"What to include in your configuration management\": [\n- [7, \"what-to-include-in-your-configuration-management\"]\n+ \"steps\": [\n+ [5, \"steps\"]\n ],\n- \"What to include in your master backups\": [\n- [7, \"what-to-include-in-your-master-backups\"]\n+ \"all\": [\n+ [5, \"all\"]\n ],\n- \"What to include in your worker backups\": [\n- [7, \"what-to-include-in-your-worker-backups\"]\n+ \"Inline test definition example\": [\n+ [5, \"inline-test-definition-example\"]\n ],\n- \"Restoring a master from a backup\": [\n- [7, \"restoring-a-master-from-a-backup\"]\n+ \"Additional support\": [\n+ [5, \"additional-support\"]\n ],\n- \"Restoring a worker from backups\": [\n- [7, \"restoring-a-worker-from-backups\"]\n+ \"Result checks\": [\n+ [5, \"result-checks\"]\n ],\n- \"LAVA Software Community Project Code of Conduct\": [\n- [15, \"lava-software-community-project-code-of-conduct\"]\n+ \"TestSets\": [\n+ [5, \"testsets\"]\n ],\n- \"Be respectful\": [\n- [15, \"be-respectful\"]\n+ \"Interactive\": [\n+ [5, \"interactive\"]\n ],\n- \"Assume good faith\": [\n- [15, \"assume-good-faith\"]\n+ \"echo\": [\n+ [5, \"echo\"]\n ],\n- \"Be collaborative\": [\n- [15, \"be-collaborative\"]\n+ \"script\": [\n+ [5, \"script\"]\n ],\n- \"Try to be concise\": [\n- [15, \"try-to-be-concise\"]\n+ \"Monitors\": [\n+ [5, \"monitors\"]\n ],\n- \"Be open\": [\n- [15, \"be-open\"]\n+ \"Command Action Reference\": [\n+ [1, \"command-action-reference\"]\n ],\n- \"In case of problems\": [\n- [15, \"in-case-of-problems\"]\n+ \"Admin Setup\": [\n+ [1, \"admin-setup\"]\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@@ -8648,70 +8450,37 @@\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- \"Bootloader/Firmware Testing and Recovery\": [\n- [14, \"bootloader-firmware-testing-and-recovery\"]\n- ],\n- \"What is recovery mode?\": [\n- [14, \"what-is-recovery-mode\"]\n- ],\n- \"Bootloader recovery criteria\": [\n- [14, \"bootloader-recovery-criteria\"]\n- ],\n- \"Uniqueness\": [\n- [14, \"uniqueness\"]\n- ],\n- \"Deployment\": [\n- [14, \"deployment\"]\n- ],\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+ \"Creating Backups\": [\n+ [7, \"creating-backups\"]\n ],\n- \"Recovery deployment\": [\n- [14, \"id8\"],\n- [14, \"id9\"],\n- [14, \"id10\"]\n+ \"Dependencies within backups\": [\n+ [7, \"dependencies-within-backups\"]\n ],\n- \"AOSP deployment\": [\n- [14, \"aosp-deployment\"]\n+ \"Issues with the base suite\": [\n+ [7, \"issues-with-the-base-suite\"]\n ],\n- \"OpenEmbedded deployment\": [\n- [14, \"openembedded-deployment\"],\n- [14, \"id11\"]\n+ \"What to include in your configuration management\": [\n+ [7, \"what-to-include-in-your-configuration-management\"]\n ],\n- \"Limits of HiKey 6220 recovery\": [\n- [14, \"limits-of-hikey-6220-recovery\"]\n+ \"What to include in your master backups\": [\n+ [7, \"what-to-include-in-your-master-backups\"]\n ],\n- \"Juno\": [\n- [14, \"juno\"]\n+ \"What to include in your worker backups\": [\n+ [7, \"what-to-include-in-your-worker-backups\"]\n ],\n- \"U-Boot boot action\": [\n- [14, \"u-boot-boot-action\"]\n+ \"Restoring a master from a backup\": [\n+ [7, \"restoring-a-master-from-a-backup\"]\n ],\n- \"X15 GPEVM\": [\n- [14, \"x15-gpevm\"]\n+ \"Restoring a worker from backups\": [\n+ [7, \"restoring-a-worker-from-backups\"]\n ],\n \"Repeat\": [\n [4, \"repeat\"]\n ],\n \"Handling repeats\": [\n [4, \"handling-repeats\"]\n ],\n@@ -8723,31 +8492,72 @@\n ],\n \"Retry interval on failure\": [\n [4, \"retry-interval-on-failure\"]\n ],\n \"Repeating blocks of actions\": [\n [4, \"repeating-blocks-of-actions\"]\n ],\n- \"Command Action Reference\": [\n- [1, \"command-action-reference\"]\n+ \"Protocol Reference\": [\n+ [3, \"protocol-reference\"]\n ],\n- \"Admin Setup\": [\n- [1, \"admin-setup\"]\n+ \"Using protocols from actions\": [\n+ [3, \"using-protocols-from-actions\"]\n ],\n- \"Configuring user authentication\": [\n- [11, \"configuring-user-authentication\"]\n+ \"MultiNode Protocol\": [\n+ [3, \"multinode-protocol\"]\n ],\n- \"Using Lightweight Directory Access Protocol (LDAP)\": [\n- [11, \"using-lightweight-directory-access-protocol-ldap\"]\n+ \"lava-start API call\": [\n+ [3, \"lava-start-api-call\"]\n ],\n- \"Using external authentication provider supported by django-allauth\": [\n- [11, \"using-external-authentication-provider-supported-by-django-allauth\"]\n+ \"Passing data at startup\": [\n+ [3, \"passing-data-at-startup\"]\n ],\n- \"Using Open ID Connect (OIDC) authentication providers\": [\n- [11, \"using-open-id-connect-oidc-authentication-providers\"]\n+ \"Managing flow using inline definitions\": [\n+ [3, \"managing-flow-using-inline-definitions\"]\n+ ],\n+ \"Marking some roles as essential\": [\n+ [3, \"marking-some-roles-as-essential\"]\n+ ],\n+ \"Protocol requests from actions\": [\n+ [3, \"protocol-requests-from-actions\"],\n+ [3, \"vland-protocol-requests\"],\n+ [3, \"lxc-protocol-requests\"]\n+ ],\n+ \"VLANd protocol\": [\n+ [3, \"vland-protocol\"]\n+ ],\n+ \"LXC protocol\": [\n+ [3, \"lxc-protocol\"]\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 \"Advanced Installation Topics\": [\n [10, \"advanced-installation-topics\"]\n ],\n \"Laptops\": [\n [10, \"laptops\"]\n ],\n@@ -8843,342 +8653,411 @@\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- \"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- \"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+ \"Configuring user authentication\": [\n+ [11, \"configuring-user-authentication\"]\n ],\n- \"steps\": [\n- [5, \"steps\"]\n+ \"Using Lightweight Directory Access Protocol (LDAP)\": [\n+ [11, \"using-lightweight-directory-access-protocol-ldap\"]\n ],\n- \"all\": [\n- [5, \"all\"]\n+ \"Using external authentication provider supported by django-allauth\": [\n+ [11, \"using-external-authentication-provider-supported-by-django-allauth\"]\n ],\n- \"Inline test definition example\": [\n- [5, \"inline-test-definition-example\"]\n+ \"Using Open ID Connect (OIDC) authentication providers\": [\n+ [11, \"using-open-id-connect-oidc-authentication-providers\"]\n ],\n- \"Additional support\": [\n- [5, \"additional-support\"]\n+ \"Bootloader/Firmware Testing and Recovery\": [\n+ [14, \"bootloader-firmware-testing-and-recovery\"]\n ],\n- \"Result checks\": [\n- [5, \"result-checks\"]\n+ \"What is recovery mode?\": [\n+ [14, \"what-is-recovery-mode\"]\n ],\n- \"TestSets\": [\n- [5, \"testsets\"]\n+ \"Bootloader recovery criteria\": [\n+ [14, \"bootloader-recovery-criteria\"]\n ],\n- \"Interactive\": [\n- [5, \"interactive\"]\n+ \"Uniqueness\": [\n+ [14, \"uniqueness\"]\n ],\n- \"prompts\": [\n- [5, \"prompts\"],\n- [0, \"prompts\"]\n+ \"Deployment\": [\n+ [14, \"deployment\"]\n ],\n- \"echo\": [\n- [5, \"echo\"]\n+ \"Comparison of barriers to bootloader testing and recovery\": [\n+ [14, \"comparison-of-barriers-to-bootloader-testing-and-recovery\"]\n ],\n- \"script\": [\n- [5, \"script\"]\n+ \"Defensive testing\": [\n+ [14, \"defensive-testing\"]\n ],\n- \"Monitors\": [\n- [5, \"monitors\"]\n+ \"Problems with bootloader execution\": [\n+ [14, \"problems-with-bootloader-execution\"]\n ],\n- \"Boot Action Reference\": [\n- [0, \"boot-action-reference\"]\n+ \"Problems with bootloader storage\": [\n+ [14, \"problems-with-bootloader-storage\"]\n ],\n- \"auto_login\": [\n- [0, \"auto-login\"]\n+ \"Problems with full system images\": [\n+ [14, \"problems-with-full-system-images\"]\n ],\n- \"login_prompt\": [\n- [0, \"login-prompt\"]\n+ \"HiKey 6220\": [\n+ [14, \"hikey-6220\"]\n ],\n- \"username\": [\n- [0, \"username\"]\n+ \"Recovery deployment\": [\n+ [14, \"id8\"],\n+ [14, \"id9\"],\n+ [14, \"id10\"]\n ],\n- \"password_prompt\": [\n- [0, \"password-prompt\"]\n+ \"AOSP deployment\": [\n+ [14, \"aosp-deployment\"]\n ],\n- \"password\": [\n- [0, \"password\"]\n+ \"OpenEmbedded deployment\": [\n+ [14, \"openembedded-deployment\"],\n+ [14, \"id11\"]\n ],\n- \"login_commands\": [\n- [0, \"login-commands\"]\n+ \"Limits of HiKey 6220 recovery\": [\n+ [14, \"limits-of-hikey-6220-recovery\"]\n ],\n- \"connection-namespace\": [\n- [0, \"connection-namespace\"]\n+ \"Juno\": [\n+ [14, \"juno\"]\n ],\n- \"commands\": [\n- [0, \"commands\"],\n- [0, \"boot-method-u-boot-commands\"]\n+ \"U-Boot boot action\": [\n+ [14, \"u-boot-boot-action\"]\n ],\n- \"Specifying commands in full\": [\n- [0, \"specifying-commands-in-full\"]\n+ \"X15 GPEVM\": [\n+ [14, \"x15-gpevm\"]\n ],\n- \"Appending to the kernel command line\": [\n- [0, \"appending-to-the-kernel-command-line\"]\n+ \"Timeout Reference\": [\n+ [6, \"timeout-reference\"]\n ],\n- \"failure_message\": [\n- [0, \"failure-message\"]\n+ \"Job timeout\": [\n+ [6, \"job-timeout\"]\n ],\n- \"method\": [\n- [0, \"method\"]\n+ \"Action timeout\": [\n+ [6, \"action-timeout\"]\n ],\n- \"bootloader\": [\n- [0, \"bootloader\"]\n+ \"Individual action timeouts\": [\n+ [6, \"individual-action-timeouts\"]\n ],\n- \"cmsis-dap\": [\n- [0, \"cmsis-dap\"]\n+ \"Connection timeout\": [\n+ [6, \"connection-timeout\"]\n ],\n- \"depthcharge\": [\n- [0, \"depthcharge\"]\n+ \"Individual connection timeouts\": [\n+ [6, \"individual-connection-timeouts\"]\n ],\n- \"docker\": [\n- [0, \"docker\"]\n+ \"Deploy Action Reference\": [\n+ [2, \"deploy-action-reference\"]\n ],\n- \"command\": [\n- [0, \"command\"]\n+ \"Deploy action roles\": [\n+ [2, \"deploy-action-roles\"]\n ],\n- \"fastboot\": [\n- [0, \"fastboot\"]\n+ \"Required parameters\": [\n+ [2, \"required-parameters\"]\n ],\n- \"fastboot boot commands\": [\n- [0, \"fastboot-boot-commands\"]\n+ \"Overlays\": [\n+ [2, \"overlays\"]\n ],\n- \"fastboot-nfs\": [\n- [0, \"fastboot-nfs\"]\n+ \"Parameter List\": [\n+ [2, \"parameter-list\"]\n ],\n- \"fvp\": [\n- [0, \"fvp\"]\n+ \"to: docker\": [\n+ [2, \"to-docker\"]\n ],\n- \"grub\": [\n- [0, \"grub\"]\n+ \"os\": [\n+ [2, \"os\"]\n ],\n- \"grub-efi\": [\n- [0, \"grub-efi\"]\n+ \"image\": [\n+ [2, \"image\"]\n ],\n- \"ipxe\": [\n- [0, \"ipxe\"]\n+ \"local\": [\n+ [2, \"local\"]\n ],\n- \"lxc\": [\n- [0, \"lxc\"]\n+ \"to: download\": [\n+ [2, \"to-download\"]\n ],\n- \"openocd\": [\n- [0, \"openocd\"]\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- \"minimal\": [\n- [0, \"minimal\"]\n+ \"label\": [\n+ [2, \"label\"],\n+ [2, \"deploy-to-tmpfs-images-label\"]\n ],\n- \"musca\": [\n- [0, \"musca\"]\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- \"pyocd\": [\n- [0, \"pyocd\"]\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- \"jlink\": [\n- [0, \"jlink\"]\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- \"new_connection\": [\n- [0, \"new-connection\"]\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- \"qemu\": [\n- [0, \"qemu\"]\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- \"media\": [\n- [0, \"media\"],\n- [0, \"boot-method-qemu-media-nfs\"],\n- [0, \"boot-method-qemu-iso-media\"]\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- \"qemu-nfs\": [\n- [0, \"qemu-nfs\"]\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- \"qemu-iso\": [\n- [0, \"qemu-iso\"]\n+ \"sha512sum\": [\n+ [2, \"sha512sum\"],\n+ [2, \"id6\"],\n+ [2, \"id27\"],\n+ [2, \"id56\"],\n+ [2, \"id78\"]\n ],\n- \"transfer_overlay\": [\n- [0, \"transfer-overlay\"]\n+ \"to: fastboot\": [\n+ [2, \"to-fastboot\"]\n ],\n- \"Deployment differences\": [\n- [0, \"deployment-differences\"]\n+ \"partition\": [\n+ [2, \"partition\"],\n+ [2, \"id71\"]\n ],\n- \"u-boot\": [\n- [0, \"u-boot\"]\n+ \"reboot\": [\n+ [2, \"reboot\"]\n ],\n- \"uefi-menu\": [\n- [0, \"uefi-menu\"]\n+ \"apply-overlay\": [\n+ [2, \"apply-overlay\"],\n+ [2, \"deploy-to-uuu-images-apply-overlay\"]\n ],\n- \"uuu\": [\n- [0, \"uuu\"]\n+ \"sparse\": [\n+ [2, \"sparse\"],\n+ [2, \"deploy-to-uuu-images-sparse\"]\n ],\n- \"Installation\": [\n- [0, \"installation\"]\n+ \"to: fvp\": [\n+ [2, \"to-fvp\"]\n ],\n- \"Usage\": [\n- [0, \"usage\"]\n+ \"overlays\": [\n+ [2, \"id9\"]\n ],\n- \"Using built-in scripts\": [\n- [0, \"using-built-in-scripts\"]\n+ \"partition *\": [\n+ [2, \"id10\"]\n ],\n- \"Using commands\": [\n- [0, \"using-commands\"]\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- \"BCU Integration\": [\n- [0, \"bcu-integration\"]\n+ \"to: iso-installer\": [\n+ [2, \"to-iso-installer\"]\n ],\n- \"Writing jobs using Secondary Connections\": [\n- [86, \"writing-jobs-using-secondary-connections\"]\n+ \"iso\": [\n+ [2, \"iso\"],\n+ [2, \"deploy-to-iso-installer-iso\"]\n ],\n- \"Secure Shell connections (ssh)\": [\n- [86, \"secure-shell-connections-ssh\"]\n+ \"image_arg\": [\n+ [2, \"image-arg\"],\n+ [2, \"deploy-to-tmpfs-images-image-arg\"]\n ],\n- \"Delaying the start of a job using Multinode\": [\n- [86, \"delaying-the-start-of-a-job-using-multinode\"]\n+ \"preseed\": [\n+ [2, \"preseed\"]\n ],\n- \"Picking up the data in the guest role\": [\n- [86, \"picking-up-the-data-in-the-guest-role\"]\n+ \"kernel\": [\n+ [2, \"kernel\"],\n+ [2, \"deploy-to-nbd-kernel\"],\n+ [2, \"deploy-to-tftp-kernel\"]\n ],\n- \"Test definition for the host role\": [\n- [86, \"test-definition-for-the-host-role\"]\n+ \"initrd\": [\n+ [2, \"initrd\"],\n+ [2, \"deploy-to-nbd-initrd\"]\n ],\n- \"Test definition for the guest role\": [\n- [86, \"test-definition-for-the-guest-role\"]\n+ \"console\": [\n+ [2, \"console\"]\n ],\n- \"Complete Multinode test definition\": [\n- [86, \"complete-multinode-test-definition\"]\n+ \"installation_size\": [\n+ [2, \"installation-size\"]\n ],\n- \"Development process\": [\n- [88, \"development-process\"]\n+ \"to: lxc\": [\n+ [2, \"to-lxc\"]\n ],\n- \"Design meeting\": [\n- [88, \"design-meeting\"]\n+ \"packages\": [\n+ [2, \"packages\"]\n ],\n- \"Release process\": [\n- [88, \"release-process\"]\n+ \"to: musca\": [\n+ [2, \"to-musca\"]\n ],\n- \"Reporting Bugs\": [\n- [88, \"reporting-bugs\"]\n+ \"test_binary\": [\n+ [2, \"test-binary\"],\n+ [2, \"deploy-to-mps-test-binary\"]\n ],\n- \"Publishing artifacts\": [\n- [90, \"publishing-artifacts\"]\n+ \"to: nbd\": [\n+ [2, \"to-nbd\"]\n ],\n- \"Linaro LAVA-lab\": [\n- [90, \"linaro-lava-lab\"]\n+ \"type\": [\n+ [2, \"type\"],\n+ [2, \"deploy-to-tftp-kernel-type\"]\n ],\n- \"LAVA schema\": [\n- [82, \"lava-schema\"]\n+ \"Supported types\": [\n+ [2, null],\n+ [2, null]\n ],\n- \"Job Submission Schema\": [\n- [82, \"job-submission-schema\"]\n+ \"dtb\": [\n+ [2, \"dtb\"],\n+ [2, \"deploy-to-tftp-dtb\"]\n ],\n- \"Schema elements\": [\n- [82, \"schema-elements\"]\n+ \"modules\": [\n+ [2, \"modules\"],\n+ [2, \"deploy-to-tftp-modules\"]\n ],\n- \"Comments\": [\n- [82, \"comments\"]\n+ \"nbdroot\": [\n+ [2, \"nbdroot\"]\n ],\n- \"Job Name\": [\n- [82, \"job-name\"]\n+ \"to: recovery\": [\n+ [2, \"to-recovery\"]\n ],\n- \"Device Type\": [\n- [82, \"device-type\"]\n+ \"to: sata\": [\n+ [2, \"to-sata\"]\n ],\n- \"Timeouts\": [\n- [82, \"timeouts\"],\n- [106, \"timeouts\"],\n- [70, \"timeouts\"]\n+ \"kernel *\": [\n+ [2, \"deploy-to-sata-kernel\"],\n+ [2, \"deploy-to-usb-kernel\"]\n ],\n- \"Priority\": [\n- [82, \"priority\"]\n+ \"dtb *\": [\n+ [2, \"deploy-to-sata-dtb\"],\n+ [2, \"deploy-to-usb-dtb\"]\n ],\n- \"Context\": [\n- [82, \"context\"],\n- [100, \"context\"]\n+ \"UUID *\": [\n+ [2, \"uuid\"],\n+ [2, \"deploy-to-usb-uuid\"]\n ],\n- \"Protocols\": [\n- [82, \"protocols\"]\n+ \"boot_part *\": [\n+ [2, \"boot-part\"],\n+ [2, \"deploy-to-usb-boot-part\"]\n ],\n- \"Actions\": [\n- [82, \"actions\"],\n- [70, \"actions\"]\n+ \"to: ssh\": [\n+ [2, \"to-ssh\"]\n ],\n- \"Deploy Action\": [\n- [82, \"deploy-action\"]\n+ \"protocols\": [\n+ [2, \"protocols\"]\n ],\n- \"Boot Action\": [\n- [82, \"boot-action\"]\n+ \"to: tftp\": [\n+ [2, \"to-tftp\"]\n ],\n- \"Test Action\": [\n- [82, \"test-action\"]\n+ \"header\": [\n+ [2, \"header\"]\n ],\n- \"Pipeline Design\": [\n- [81, \"pipeline-design\"]\n+ \"nfsrootfs\": [\n+ [2, \"nfsrootfs\"]\n ],\n- \"Principles of the LAVA design\": [\n- [81, \"principles-of-the-lava-design\"]\n+ \"persistent_nfs\": [\n+ [2, \"persistent-nfs\"]\n ],\n- \"Test Writer aspects\": [\n- [81, \"test-writer-aspects\"]\n+ \"Known Caveats\": [\n+ [2, null]\n ],\n- \"Administrator aspects\": [\n- [81, \"administrator-aspects\"]\n+ \"address *\": [\n+ [2, \"address\"]\n ],\n- \"Setting up a LAVA instance\": [\n- [83, \"setting-up-a-lava-instance\"]\n+ \"to: tmpfs\": [\n+ [2, \"to-tmpfs\"]\n ],\n- \"Installing just lava-server\": [\n- [83, \"installing-just-lava-server\"]\n+ \"to: usb\": [\n+ [2, \"to-usb\"]\n ],\n- \"Installing the full lava set\": [\n- [83, \"installing-the-full-lava-set\"]\n+ \"to: vemsd\": [\n+ [2, \"to-vemsd\"]\n ],\n- \"Installing master without Recommends\": [\n- [83, \"installing-master-without-recommends\"]\n+ \"recovery_image\": [\n+ [2, \"recovery-image\"],\n+ [2, \"id65\"]\n ],\n- \"Installing lava-dispatcher\": [\n- [83, \"installing-lava-dispatcher\"]\n+ \"to: mps\": [\n+ [2, \"to-mps\"]\n ],\n- \"Configuring apache2 on a worker\": [\n- [83, \"configuring-apache2-on-a-worker\"]\n+ \"rename\": [\n+ [2, \"rename\"]\n ],\n- \"Adding workers to the master\": [\n- [83, \"adding-workers-to-the-master\"]\n+ \"to: uuu\": [\n+ [2, \"to-uuu\"]\n ],\n- \"Adding devices to a worker\": [\n- [83, \"adding-devices-to-a-worker\"]\n+ \"os *\": [\n+ [2, \"deploy-os\"]\n ],\n \"Administrator debugging\": [\n [80, \"administrator-debugging\"]\n ],\n \"Debugging a LAVA instance\": [\n [80, \"debugging-a-lava-instance\"]\n ],\n@@ -9200,76 +9079,59 @@\n ],\n \"Displaying current settings\": [\n [80, \"displaying-current-settings\"]\n ],\n \"Django support in 1.11\": [\n [80, \"django-support-in-1-11\"]\n ],\n- \"HTTP proxies\": [\n- [89, \"http-proxies\"]\n- ],\n- \"Using the HTTP proxy\": [\n- [89, \"using-the-http-proxy\"]\n- ],\n- \"Using the HTTP cache\": [\n- [89, \"using-the-http-cache\"]\n- ],\n- \"Handling bots\": [\n- [89, \"handling-bots\"]\n- ],\n- \"Correlating a test result with the source code\": [\n- [92, \"correlating-a-test-result-with-the-source-code\"]\n- ],\n- \"Problems within test suites\": [\n- [92, \"problems-within-test-suites\"]\n- ],\n- \"Avoid reliance on the total count\": [\n- [92, \"avoid-reliance-on-the-total-count\"]\n- ],\n- \"Control the test operations\": [\n- [92, \"control-the-test-operations\"]\n+ \"LAVA schema\": [\n+ [82, \"lava-schema\"]\n ],\n- \"Control the output\": [\n- [92, \"control-the-output\"]\n+ \"Job Submission Schema\": [\n+ [82, \"job-submission-schema\"]\n ],\n- \"Control the base system\": [\n- [92, \"control-the-base-system\"]\n+ \"Schema elements\": [\n+ [82, \"schema-elements\"]\n ],\n- \"Control the build system\": [\n- [92, \"control-the-build-system\"]\n+ \"Comments\": [\n+ [82, \"comments\"]\n ],\n- \"Control the list of tests\": [\n- [92, \"control-the-list-of-tests\"]\n+ \"Job Name\": [\n+ [82, \"job-name\"]\n ],\n- \"Distinguish between CI tests and functional tests\": [\n- [92, \"distinguish-between-ci-tests-and-functional-tests\"]\n+ \"Device Type\": [\n+ [82, \"device-type\"]\n ],\n- \"Manage testing of complete software stacks\": [\n- [92, \"manage-testing-of-complete-software-stacks\"]\n+ \"Timeouts\": [\n+ [82, \"timeouts\"],\n+ [106, \"timeouts\"],\n+ [70, \"timeouts\"]\n ],\n- \"Reproducing test jobs\": [\n- [92, \"reproducing-test-jobs\"]\n+ \"Priority\": [\n+ [82, \"priority\"]\n ],\n- \"State machine\": [\n- [95, \"state-machine\"]\n+ \"Context\": [\n+ [82, \"context\"],\n+ [100, \"context\"]\n ],\n- \"Devices\": [\n- [95, \"devices\"]\n+ \"Protocols\": [\n+ [82, \"protocols\"]\n ],\n- \"TestJobs\": [\n- [95, \"testjobs\"]\n+ \"Actions\": [\n+ [82, \"actions\"],\n+ [70, \"actions\"]\n ],\n- \"Scheduler\": [\n- [95, \"scheduler\"]\n+ \"Deploy Action\": [\n+ [82, \"deploy-action\"]\n ],\n- \"Health-checks\": [\n- [95, \"health-checks\"]\n+ \"Boot Action\": [\n+ [82, \"boot-action\"]\n ],\n- \"Test jobs\": [\n- [95, \"test-jobs\"]\n+ \"Test Action\": [\n+ [82, \"test-action\"]\n ],\n \"QEMU options\": [\n [91, \"qemu-options\"]\n ],\n \"Virtualization testing\": [\n [91, \"virtualization-testing\"]\n ],\n@@ -9296,14 +9158,65 @@\n ],\n \"Host architecture support\": [\n [91, \"host-architecture-support\"]\n ],\n \"LAVA test storage\": [\n [91, \"lava-test-storage\"]\n ],\n+ \"Advanced Use Cases\": [\n+ [84, \"advanced-use-cases\"]\n+ ],\n+ \"Development process\": [\n+ [88, \"development-process\"]\n+ ],\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+ \"HTTP proxies\": [\n+ [89, \"http-proxies\"]\n+ ],\n+ \"Using the HTTP proxy\": [\n+ [89, \"using-the-http-proxy\"]\n+ ],\n+ \"Using the HTTP cache\": [\n+ [89, \"using-the-http-cache\"]\n+ ],\n+ \"Handling bots\": [\n+ [89, \"handling-bots\"]\n+ ],\n+ \"Setting up a LAVA instance\": [\n+ [83, \"setting-up-a-lava-instance\"]\n+ ],\n+ \"Installing just lava-server\": [\n+ [83, \"installing-just-lava-server\"]\n+ ],\n+ \"Installing the full lava set\": [\n+ [83, \"installing-the-full-lava-set\"]\n+ ],\n+ \"Installing master without Recommends\": [\n+ [83, \"installing-master-without-recommends\"]\n+ ],\n+ \"Installing lava-dispatcher\": [\n+ [83, \"installing-lava-dispatcher\"]\n+ ],\n+ \"Configuring apache2 on a worker\": [\n+ [83, \"configuring-apache2-on-a-worker\"]\n+ ],\n+ \"Adding workers to the master\": [\n+ [83, \"adding-workers-to-the-master\"]\n+ ],\n+ \"Adding devices to a worker\": [\n+ [83, \"adding-devices-to-a-worker\"]\n+ ],\n \"Introduction to Results in LAVA\": [\n [93, \"introduction-to-results-in-lava\"]\n ],\n \"Accessing results\": [\n [93, \"accessing-results\"]\n ],\n \"Accessing specific test results\": [\n@@ -9329,58 +9242,46 @@\n ],\n \"Accessing associated sections of test job logs\": [\n [93, \"accessing-associated-sections-of-test-job-logs\"]\n ],\n \"Sample output for lava-test-case shell\": [\n [93, \"sample-output-for-lava-test-case-name-shell\"]\n ],\n- \"Test Writer use cases\": [\n- [85, \"test-writer-use-cases\"]\n- ],\n- \"Writing a LAVA job submission\": [\n- [85, \"writing-a-lava-job-submission\"]\n- ],\n- \"General principles\": [\n- [85, \"general-principles\"]\n- ],\n- \"API\": [\n- [85, \"api\"]\n- ],\n- \"Validity checks\": [\n- [85, \"validity-checks\"]\n+ \"Correlating a test result with the source code\": [\n+ [92, \"correlating-a-test-result-with-the-source-code\"]\n ],\n- \"Results\": [\n- [85, \"results\"]\n+ \"Problems within test suites\": [\n+ [92, \"problems-within-test-suites\"]\n ],\n- \"Job submission data\": [\n- [85, \"job-submission-data\"]\n+ \"Avoid reliance on the total count\": [\n+ [92, \"avoid-reliance-on-the-total-count\"]\n ],\n- \"Writing a new TestJob\": [\n- [85, \"writing-a-new-testjob\"]\n+ \"Control the test operations\": [\n+ [92, \"control-the-test-operations\"]\n ],\n- \"YAML syntax\": [\n- [85, \"yaml-syntax\"]\n+ \"Control the output\": [\n+ [92, \"control-the-output\"]\n ],\n- \"Common YAML errors\": [\n- [85, \"common-yaml-errors\"]\n+ \"Control the base system\": [\n+ [92, \"control-the-base-system\"]\n ],\n- \"Understanding available support\": [\n- [85, \"understanding-available-support\"]\n+ \"Control the build system\": [\n+ [92, \"control-the-build-system\"]\n ],\n- \"Understanding a TestJob\": [\n- [85, \"understanding-a-testjob\"]\n+ \"Control the list of tests\": [\n+ [92, \"control-the-list-of-tests\"]\n ],\n- \"Submissions using advanced features\": [\n- [85, \"submissions-using-advanced-features\"]\n+ \"Distinguish between CI tests and functional tests\": [\n+ [92, \"distinguish-between-ci-tests-and-functional-tests\"]\n ],\n- \"Templating\": [\n- [85, \"templating\"]\n+ \"Manage testing of complete software stacks\": [\n+ [92, \"manage-testing-of-complete-software-stacks\"]\n ],\n- \"Including YAML\": [\n- [85, \"including-yaml\"]\n+ \"Reproducing test jobs\": [\n+ [92, \"reproducing-test-jobs\"]\n ],\n \"Replacing VMGroups using Secondary Connections\": [\n [87, \"replacing-vmgroups-using-secondary-connections\"]\n ],\n \"Structure of an example job for a mustang\": [\n [87, \"structure-of-an-example-job-for-a-mustang\"]\n ],\n@@ -9410,189 +9311,221 @@\n ],\n \"Give the test writer enough rope\": [\n [94, \"give-the-test-writer-enough-rope\"]\n ],\n \"Guidance\": [\n [94, \"guidance\"]\n ],\n- \"Advanced Use Cases\": [\n- [84, \"advanced-use-cases\"]\n+ \"Test Writer use cases\": [\n+ [85, \"test-writer-use-cases\"]\n ],\n- \"Standard test job for QEMU - Stretch amd64\": [\n- [100, \"standard-test-job-for-qemu-stretch-amd64\"]\n+ \"Writing a LAVA job submission\": [\n+ [85, \"writing-a-lava-job-submission\"]\n ],\n- \"arch\": [\n- [100, \"arch\"]\n+ \"General principles\": [\n+ [85, \"general-principles\"]\n ],\n- \"netdevice\": [\n- [100, \"netdevice\"]\n+ \"API\": [\n+ [85, \"api\"]\n ],\n- \"Test\": [\n- [100, \"test\"],\n- [98, \"test\"],\n- [70, \"test\"]\n+ \"Validity checks\": [\n+ [85, \"validity-checks\"]\n ],\n- \"Next steps\": [\n- [100, \"next-steps\"]\n+ \"Results\": [\n+ [85, \"results\"]\n ],\n- \"Writing a Lava-Test Test Definition 1.0\": [\n- [111, \"writing-a-lava-test-test-definition-1-0\"]\n+ \"Job submission data\": [\n+ [85, \"job-submission-data\"]\n ],\n- \"Writing a test definition YAML file\": [\n- [111, \"writing-a-test-definition-yaml-file\"]\n+ \"Writing a new TestJob\": [\n+ [85, \"writing-a-new-testjob\"]\n ],\n- \"Optional metadata\": [\n- [111, \"optional-metadata\"]\n+ \"YAML syntax\": [\n+ [85, \"yaml-syntax\"]\n ],\n- \"Deprecated installation commands\": [\n- [111, \"deprecated-installation-commands\"]\n+ \"Common YAML errors\": [\n+ [85, \"common-yaml-errors\"]\n ],\n- \"Writing commands to run on the device\": [\n- [111, \"writing-commands-to-run-on-the-device\"]\n+ \"Understanding available support\": [\n+ [85, \"understanding-available-support\"]\n ],\n- \"Using inline test definitions\": [\n- [111, \"using-inline-test-definitions\"]\n+ \"Understanding a TestJob\": [\n+ [85, \"understanding-a-testjob\"]\n ],\n- \"Terminology reference\": [\n- [111, \"terminology-reference\"]\n+ \"Submissions using advanced features\": [\n+ [85, \"submissions-using-advanced-features\"]\n ],\n- \"LAVA Test Job\": [\n- [111, \"lava-test-job\"]\n+ \"Templating\": [\n+ [85, \"templating\"]\n ],\n- \"LAVA Test Shell Definition\": [\n- [111, \"lava-test-shell-definition\"]\n+ \"Including YAML\": [\n+ [85, \"including-yaml\"]\n ],\n- \"LAVA Test Helpers\": [\n- [111, \"lava-test-helpers\"]\n+ \"Pipeline Design\": [\n+ [81, \"pipeline-design\"]\n ],\n- \"Supporting OS variants\": [\n- [111, \"supporting-os-variants\"]\n+ \"Principles of the LAVA design\": [\n+ [81, \"principles-of-the-lava-design\"]\n ],\n- \"Test Writer Scripts\": [\n- [111, \"test-writer-scripts\"]\n+ \"Test Writer aspects\": [\n+ [81, \"test-writer-aspects\"]\n ],\n- \"Writing custom scripts to support tests\": [\n- [111, \"writing-custom-scripts-to-support-tests\"]\n+ \"Administrator aspects\": [\n+ [81, \"administrator-aspects\"]\n ],\n- \"Advantages of custom scripts\": [\n- [111, \"advantages-of-custom-scripts\"]\n+ \"Writing jobs using Secondary Connections\": [\n+ [86, \"writing-jobs-using-secondary-connections\"]\n ],\n- \"Detailed knowledge of the output\": [\n- [111, \"detailed-knowledge-of-the-output\"]\n+ \"Secure Shell connections (ssh)\": [\n+ [86, \"secure-shell-connections-ssh\"]\n ],\n- \"Increased portability\": [\n- [111, \"increased-portability\"]\n+ \"Delaying the start of a job using Multinode\": [\n+ [86, \"delaying-the-start-of-a-job-using-multinode\"]\n ],\n- \"Script interpreters\": [\n- [111, \"script-interpreters\"]\n+ \"Picking up the data in the guest role\": [\n+ [86, \"picking-up-the-data-in-the-guest-role\"]\n ],\n- \"Using commands as test cases\": [\n- [111, \"using-commands-as-test-cases\"]\n+ \"Test definition for the host role\": [\n+ [86, \"test-definition-for-the-host-role\"]\n ],\n- \"Recording test case results\": [\n- [111, \"recording-test-case-results\"]\n+ \"Test definition for the guest role\": [\n+ [86, \"test-definition-for-the-guest-role\"]\n ],\n- \"Recording test case measurements and units\": [\n- [111, \"recording-test-case-measurements-and-units\"]\n+ \"Complete Multinode test definition\": [\n+ [86, \"complete-multinode-test-definition\"]\n ],\n- \"Recording sets of test cases\": [\n- [111, \"recording-sets-of-test-cases\"]\n+ \"State machine\": [\n+ [95, \"state-machine\"]\n ],\n- \"Recording test case references\": [\n- [111, \"recording-test-case-references\"]\n+ \"Devices\": [\n+ [95, \"devices\"]\n ],\n- \"Test shell parameters\": [\n- [111, \"test-shell-parameters\"]\n+ \"TestJobs\": [\n+ [95, \"testjobs\"]\n ],\n- \"Obtaining information about the device\": [\n- [111, \"obtaining-information-about-the-device\"]\n+ \"Scheduler\": [\n+ [95, \"scheduler\"]\n ],\n- \"Recording test case data\": [\n- [111, \"recording-test-case-data\"]\n+ \"Health-checks\": [\n+ [95, \"health-checks\"]\n ],\n- \"Simple strings\": [\n- [111, \"simple-strings\"]\n+ \"Test jobs\": [\n+ [95, \"test-jobs\"]\n ],\n- \"Files\": [\n- [111, \"files\"]\n+ \"Publishing artifacts\": [\n+ [90, \"publishing-artifacts\"]\n ],\n- \"Measurements\": [\n- [111, \"measurements\"]\n+ \"Linaro LAVA-lab\": [\n+ [90, \"linaro-lava-lab\"]\n ],\n- \"The lava test results\": [\n- [111, \"the-lava-test-results\"]\n+ \"Simple Administration\": [\n+ [97, \"simple-administration\"]\n ],\n- \"Best practices for writing a LAVA test job\": [\n- [111, \"best-practices-for-writing-a-lava-test-job\"]\n+ \"Outline\": [\n+ [97, \"outline\"]\n ],\n- \"Write portable test definitions\": [\n- [111, \"write-portable-test-definitions\"]\n+ \"Debian system administration\": [\n+ [97, \"debian-system-administration\"]\n ],\n- \"Rely less on install: steps\": [\n- [111, \"rely-less-on-install-steps\"]\n+ \"Debian package management\": [\n+ [97, \"debian-package-management\"]\n ],\n- \"Use different test definitions for different test areas\": [\n- [111, \"use-different-test-definitions-for-different-test-areas\"]\n+ \"Infrastructure\": [\n+ [97, \"infrastructure\"]\n ],\n- \"Use different jobs for different test environments\": [\n- [111, \"use-different-jobs-for-different-test-environments\"]\n+ \"Start small\": [\n+ [97, \"start-small\"]\n ],\n- \"Use a limited number of test definitions per job\": [\n- [111, \"use-a-limited-number-of-test-definitions-per-job\"]\n+ \"Problems with simplistic testing\": [\n+ [97, \"problems-with-simplistic-testing\"]\n ],\n- \"Retain at least some debug output in the final test definitions\": [\n- [111, \"retain-at-least-some-debug-output-in-the-final-test-definitions\"]\n+ \"Connect and test\": [\n+ [97, \"connect-and-test\"]\n ],\n- \"Mock up the device output to test the scripts\": [\n- [111, \"mock-up-the-device-output-to-test-the-scripts\"]\n+ \"ssh instead of serial\": [\n+ [97, \"ssh-instead-of-serial\"]\n ],\n- \"Use functional tests to validate common functionality\": [\n- [111, \"use-functional-tests-to-validate-common-functionality\"]\n+ \"test everything at the same time\": [\n+ [97, \"test-everything-at-the-same-time\"]\n ],\n- \"Check for specific support as a test case\": [\n- [111, \"check-for-specific-support-as-a-test-case\"]\n+ \"I already have builds\": [\n+ [97, \"i-already-have-builds\"]\n ],\n- \"Check custom scripts for side-effects\": [\n- [111, \"check-custom-scripts-for-side-effects\"]\n+ \"Automation can do everything\": [\n+ [97, \"automation-can-do-everything\"]\n ],\n- \"Call lava-test-raise if setup fails\": [\n- [111, \"call-lava-test-raise-if-setup-fails\"]\n+ \"Users are all admins too\": [\n+ [97, \"users-are-all-admins-too\"]\n ],\n- \"Inline\": [\n- [111, \"inline\"]\n+ \"Roles of LAVA administrators\": [\n+ [97, \"roles-of-lava-administrators\"]\n ],\n- \"Using a repository\": [\n- [111, \"using-a-repository\"]\n+ \"Best practice\": [\n+ [97, \"best-practice\"]\n ],\n- \"Shell library\": [\n- [111, \"shell-library\"]\n+ \"Triage\": [\n+ [97, \"triage\"]\n ],\n- \"Calling shell script\": [\n- [111, \"calling-shell-script\"]\n+ \"Problems affecting test jobs\": [\n+ [97, \"problems-affecting-test-jobs\"]\n ],\n- \"Test shell definition\": [\n- [111, \"test-shell-definition\"]\n+ \"Power up failures\": [\n+ [97, \"power-up-failures\"]\n ],\n- \"Custom scripts\": [\n- [111, \"setup-custom-scripts\"]\n+ \"Compatibility failures\": [\n+ [97, \"compatibility-failures\"],\n+ [65, \"compatibility-failures\"]\n ],\n- \"Example of lava-test-raise\": [\n- [111, \"example-of-lava-test-raise\"]\n+ \"Checking for MultiNode issues\": [\n+ [97, \"checking-for-multinode-issues\"]\n ],\n- \"Control the amount of output from scripts and tools\": [\n- [111, \"control-the-amount-of-output-from-scripts-and-tools\"]\n+ \"Where to find debug information\": [\n+ [97, \"where-to-find-debug-information\"]\n ],\n- \"Specific tools\": [\n- [111, \"specific-tools\"]\n+ \"Jinja2 Templates\": [\n+ [97, \"jinja2-templates\"]\n ],\n- \"Problems with output\": [\n- [111, \"problems-with-output\"]\n+ \"TestJob data\": [\n+ [97, \"testjob-data\"]\n ],\n- \"Control the number of test cases reported\": [\n- [111, \"control-the-number-of-test-cases-reported\"]\n+ \"LAVA configuration files\": [\n+ [97, \"lava-configuration-files\"]\n+ ],\n+ \"lava-coordinator\": [\n+ [97, \"lava-coordinator\"]\n+ ],\n+ \"Overriding device configuration\": [\n+ [97, \"overriding-device-configuration\"]\n+ ],\n+ \"Overriding device constants\": [\n+ [97, \"overriding-device-constants\"]\n+ ],\n+ \"Adding more devices\": [\n+ [97, \"adding-more-devices\"]\n+ ],\n+ \"Adding users and groups\": [\n+ [97, \"adding-users-and-groups\"]\n+ ],\n+ \"Local Users\": [\n+ [97, \"local-users\"]\n+ ],\n+ \"LDAP Users\": [\n+ [97, \"ldap-users\"]\n+ ],\n+ \"Local Groups\": [\n+ [97, \"local-groups\"]\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+ \"Gold standard test jobs\": [\n+ [101, \"gold-standard-test-jobs\"]\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@@ -9602,73 +9535,90 @@\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- \"Writing MultiNode tests\": [\n- [110, \"writing-multinode-tests\"]\n+ \"Test\": [\n+ [98, \"test\"],\n+ [100, \"test\"],\n+ [70, \"test\"]\n ],\n- \"Writing a MultiNode job file\": [\n- [110, \"writing-a-multinode-job-file\"]\n+ \"Standard test job for QEMU - Sid arm64\": [\n+ [99, \"standard-test-job-for-qemu-sid-arm64\"]\n ],\n- \"Defining MultiNode roles\": [\n- [110, \"defining-multinode-roles\"]\n+ \"QEMU with kernel and initramfs\": [\n+ [99, \"qemu-with-kernel-and-initramfs\"]\n ],\n- \"Using the job context in MultiNode\": [\n- [110, \"using-the-job-context-in-multinode\"]\n+ \"Job context\": [\n+ [99, \"job-context\"]\n ],\n- \"Using MultiNode roles\": [\n- [110, \"using-multinode-roles\"]\n+ \"Deploying the kernel\": [\n+ [99, \"deploying-the-kernel\"]\n ],\n- \"Running tests in MultiNode\": [\n- [110, \"running-tests-in-multinode\"]\n+ \"Using Jinja2 to generate LAVA test job submissions\": [\n+ [104, \"using-jinja2-to-generate-lava-test-job-submissions\"]\n ],\n- \"Running different tests on different devices\": [\n- [110, \"running-different-tests-on-different-devices\"]\n+ \"Starting with templates\": [\n+ [104, \"starting-with-templates\"]\n ],\n- \"Allocating different device types to a group\": [\n- [110, \"allocating-different-device-types-to-a-group\"]\n+ \"Output\": [\n+ [104, \"output\"]\n ],\n- \"Splitting deployment actions between roles\": [\n- [110, \"splitting-deployment-actions-between-roles\"]\n+ \"Extending templates with contexts\": [\n+ [104, \"extending-templates-with-contexts\"]\n ],\n- \"(Potentially) Splitting boot actions\": [\n- [110, \"potentially-splitting-boot-actions\"]\n+ \"Templates can extend templates\": [\n+ [104, \"templates-can-extend-templates\"]\n ],\n- \"Using MultiNode commands to synchronize devices\": [\n- [110, \"using-multinode-commands-to-synchronize-devices\"]\n+ \"Logic control within templates\": [\n+ [104, \"logic-control-within-templates\"]\n ],\n- \"Controlling synchronization from the test shell\": [\n- [110, \"controlling-synchronization-from-the-test-shell\"]\n+ \"Template best practice\": [\n+ [104, \"template-best-practice\"]\n ],\n- \"Controlling synchronization from the dispatcher\": [\n- [110, \"controlling-synchronization-from-the-dispatcher\"]\n+ \"Using templates for test jobs\": [\n+ [104, \"using-templates-for-test-jobs\"]\n ],\n- \"Using the MultiNode API - further features\": [\n- [110, \"using-the-multinode-api-further-features\"]\n+ \"Test definitions in version control\": [\n+ [105, \"test-definitions-in-version-control\"]\n ],\n- \"Using MultiNode commands to pass data between devices\": [\n- [110, \"using-multinode-commands-to-pass-data-between-devices\"]\n+ \"Job definitions in version control\": [\n+ [105, \"job-definitions-in-version-control\"]\n ],\n- \"Helper tools in LAVA\": [\n- [110, \"helper-tools-in-lava\"]\n+ \"Using specific branch of a test definition repository\": [\n+ [105, \"using-specific-branch-of-a-test-definition-repository\"]\n ],\n- \"Other MultiNode calls\": [\n- [110, \"other-multinode-calls\"]\n+ \"Using specific revisions of a test definition\": [\n+ [105, \"using-specific-revisions-of-a-test-definition\"]\n ],\n- \"Writing jobs using the MultiNode protocol\": [\n- [110, \"writing-jobs-using-the-multinode-protocol\"]\n+ \"Shallow clones in GIT\": [\n+ [105, \"shallow-clones-in-git\"]\n ],\n- \"Writing jobs using MultiNode and LXC\": [\n- [110, \"writing-jobs-using-multinode-and-lxc\"]\n+ \"Removing git history\": [\n+ [105, \"removing-git-history\"]\n ],\n- \"Adding test actions\": [\n- [110, \"adding-test-actions\"]\n+ \"Sharing the contents of test definitions\": [\n+ [105, \"sharing-the-contents-of-test-definitions\"]\n+ ],\n+ \"Test repository for functional tests in LAVA\": [\n+ [105, \"test-repository-for-functional-tests-in-lava\"]\n+ ],\n+ \"Using kernel messages in a test shell\": [\n+ [105, \"using-kernel-messages-in-a-test-shell\"]\n+ ],\n+ \"Syntax\": [\n+ [105, \"syntax\"]\n+ ],\n+ \"Login\": [\n+ [105, \"login\"]\n+ ],\n+ \"stdout\": [\n+ [105, \"stdout\"]\n ],\n \"Getting support\": [\n [102, \"getting-support\"]\n ],\n \"Guidelines\": [\n [102, \"guidelines\"]\n ],\n@@ -9686,85 +9636,97 @@\n ],\n \"IRC\": [\n [102, \"irc\"]\n ],\n \"Pastebins\": [\n [102, \"pastebins\"]\n ],\n- \"Administering VLANd support in LAVA\": [\n- [109, \"administering-vland-support-in-lava\"]\n+ \"Using tables in LAVA\": [\n+ [103, \"using-tables-in-lava\"]\n ],\n- \"Mandatory Constraints\": [\n- [109, \"mandatory-constraints\"]\n+ \"Table search support\": [\n+ [103, \"table-search-support\"]\n ],\n- \"Single set of switches\": [\n- [109, \"single-set-of-switches\"]\n+ \"Simple text search\": [\n+ [103, \"simple-text-search\"]\n ],\n- \"Switches must have drivers in vland\": [\n- [109, \"switches-must-have-drivers-in-vland\"]\n+ \"Custom table queries\": [\n+ [103, \"custom-table-queries\"]\n ],\n- \"Accurate map of network topology\": [\n- [109, \"accurate-map-of-network-topology\"]\n+ \"Exclusive table searches\": [\n+ [103, \"exclusive-table-searches\"]\n ],\n- \"Identification of primary interfaces\": [\n- [109, \"identify-primary-interfaces\"]\n+ \"Other filters\": [\n+ [103, \"other-filters\"]\n ],\n- \"Additional advice\": [\n- [109, \"additional-advice\"]\n+ \"Resetting a table\": [\n+ [103, \"resetting-a-table\"]\n ],\n- \"Example device dictionary\": [\n- [109, \"example-device-dictionary\"]\n+ \"Unavailable entries\": [\n+ [103, \"unavailable-entries\"]\n ],\n- \"Viewing the network map\": [\n- [109, \"viewing-the-network-map\"]\n+ \"Writing MultiNode tests\": [\n+ [110, \"writing-multinode-tests\"]\n ],\n- \"Using Jinja2 to generate LAVA test job submissions\": [\n- [104, \"using-jinja2-to-generate-lava-test-job-submissions\"]\n+ \"Writing a MultiNode job file\": [\n+ [110, \"writing-a-multinode-job-file\"]\n ],\n- \"Starting with templates\": [\n- [104, \"starting-with-templates\"]\n+ \"Defining MultiNode roles\": [\n+ [110, \"defining-multinode-roles\"]\n ],\n- \"Output\": [\n- [104, \"output\"]\n+ \"Using the job context in MultiNode\": [\n+ [110, \"using-the-job-context-in-multinode\"]\n ],\n- \"Extending templates with contexts\": [\n- [104, \"extending-templates-with-contexts\"]\n+ \"Using MultiNode roles\": [\n+ [110, \"using-multinode-roles\"]\n ],\n- \"Templates can extend templates\": [\n- [104, \"templates-can-extend-templates\"]\n+ \"Running tests in MultiNode\": [\n+ [110, \"running-tests-in-multinode\"]\n ],\n- \"Logic control within templates\": [\n- [104, \"logic-control-within-templates\"]\n+ \"Running different tests on different devices\": [\n+ [110, \"running-different-tests-on-different-devices\"]\n ],\n- \"Template best practice\": [\n- [104, \"template-best-practice\"]\n+ \"Allocating different device types to a group\": [\n+ [110, \"allocating-different-device-types-to-a-group\"]\n ],\n- \"Using templates for test jobs\": [\n- [104, \"using-templates-for-test-jobs\"]\n+ \"Splitting deployment actions between roles\": [\n+ [110, \"splitting-deployment-actions-between-roles\"]\n ],\n- \"User notifications in LAVA\": [\n- [107, \"user-notifications-in-lava\"]\n+ \"(Potentially) Splitting boot actions\": [\n+ [110, \"potentially-splitting-boot-actions\"]\n ],\n- \"Notification recipients\": [\n- [107, \"notification-recipients\"]\n+ \"Using MultiNode commands to synchronize devices\": [\n+ [110, \"using-multinode-commands-to-synchronize-devices\"]\n ],\n- \"Notification callbacks\": [\n- [107, \"notification-callbacks\"]\n+ \"Controlling synchronization from the test shell\": [\n+ [110, \"controlling-synchronization-from-the-test-shell\"]\n ],\n- \"Debugging notification callbacks\": [\n- [107, \"debugging-notification-callbacks\"]\n+ \"Controlling synchronization from the dispatcher\": [\n+ [110, \"controlling-synchronization-from-the-dispatcher\"]\n ],\n- \"Using profile settings\": [\n- [107, \"using-profile-settings\"]\n+ \"Using the MultiNode API - further features\": [\n+ [110, \"using-the-multinode-api-further-features\"]\n ],\n- \"Direct listing of recipients\": [\n- [107, \"direct-listing-of-recipients\"]\n+ \"Using MultiNode commands to pass data between devices\": [\n+ [110, \"using-multinode-commands-to-pass-data-between-devices\"]\n ],\n- \"Result comparison in notifications\": [\n- [107, \"result-comparison-in-notifications\"]\n+ \"Helper tools in LAVA\": [\n+ [110, \"helper-tools-in-lava\"]\n+ ],\n+ \"Other MultiNode calls\": [\n+ [110, \"other-multinode-calls\"]\n+ ],\n+ \"Writing jobs using the MultiNode protocol\": [\n+ [110, \"writing-jobs-using-the-multinode-protocol\"]\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 \"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@@ -9788,117 +9750,14 @@\n ],\n \"Deploy commands\": [\n [96, \"deploy-commands\"]\n ],\n \"Boot commands\": [\n [96, \"boot-commands\"]\n ],\n- \"Simple Administration\": [\n- [97, \"simple-administration\"]\n- ],\n- \"Outline\": [\n- [97, \"outline\"]\n- ],\n- \"Debian system administration\": [\n- [97, \"debian-system-administration\"]\n- ],\n- \"Debian package management\": [\n- [97, \"debian-package-management\"]\n- ],\n- \"Infrastructure\": [\n- [97, \"infrastructure\"]\n- ],\n- \"Start small\": [\n- [97, \"start-small\"]\n- ],\n- \"Problems with simplistic testing\": [\n- [97, \"problems-with-simplistic-testing\"]\n- ],\n- \"Connect and test\": [\n- [97, \"connect-and-test\"]\n- ],\n- \"ssh instead of serial\": [\n- [97, \"ssh-instead-of-serial\"]\n- ],\n- \"test everything at the same time\": [\n- [97, \"test-everything-at-the-same-time\"]\n- ],\n- \"I already have builds\": [\n- [97, \"i-already-have-builds\"]\n- ],\n- \"Automation can do everything\": [\n- [97, \"automation-can-do-everything\"]\n- ],\n- \"Users are all admins too\": [\n- [97, \"users-are-all-admins-too\"]\n- ],\n- \"Roles of LAVA administrators\": [\n- [97, \"roles-of-lava-administrators\"]\n- ],\n- \"Best practice\": [\n- [97, \"best-practice\"]\n- ],\n- \"Triage\": [\n- [97, \"triage\"]\n- ],\n- \"Problems affecting test jobs\": [\n- [97, \"problems-affecting-test-jobs\"]\n- ],\n- \"Power up failures\": [\n- [97, \"power-up-failures\"]\n- ],\n- \"Compatibility failures\": [\n- [97, \"compatibility-failures\"],\n- [65, \"compatibility-failures\"]\n- ],\n- \"Checking for MultiNode issues\": [\n- [97, \"checking-for-multinode-issues\"]\n- ],\n- \"Where to find debug information\": [\n- [97, \"where-to-find-debug-information\"]\n- ],\n- \"Jinja2 Templates\": [\n- [97, \"jinja2-templates\"]\n- ],\n- \"TestJob data\": [\n- [97, \"testjob-data\"]\n- ],\n- \"LAVA configuration files\": [\n- [97, \"lava-configuration-files\"]\n- ],\n- \"lava-coordinator\": [\n- [97, \"lava-coordinator\"]\n- ],\n- \"Overriding device configuration\": [\n- [97, \"overriding-device-configuration\"]\n- ],\n- \"Overriding device constants\": [\n- [97, \"overriding-device-constants\"]\n- ],\n- \"Adding more devices\": [\n- [97, \"adding-more-devices\"]\n- ],\n- \"Adding users and groups\": [\n- [97, \"adding-users-and-groups\"]\n- ],\n- \"Local Users\": [\n- [97, \"local-users\"]\n- ],\n- \"LDAP Users\": [\n- [97, \"ldap-users\"]\n- ],\n- \"Local Groups\": [\n- [97, \"local-groups\"]\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 \"VLANd support in LAVA test jobs\": [\n [108, \"vland-support-in-lava-test-jobs\"]\n ],\n \"What is a VLAN?\": [\n [108, \"what-is-a-vlan\"]\n ],\n \"VLANd and LAVA\": [\n@@ -9951,65 +9810,14 @@\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- \"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- \"Using specific branch of a test definition repository\": [\n- [105, \"using-specific-branch-of-a-test-definition-repository\"]\n- ],\n- \"Using specific revisions of a test definition\": [\n- [105, \"using-specific-revisions-of-a-test-definition\"]\n- ],\n- \"Shallow clones in GIT\": [\n- [105, \"shallow-clones-in-git\"]\n- ],\n- \"Removing git history\": [\n- [105, \"removing-git-history\"]\n- ],\n- \"Sharing the contents of test definitions\": [\n- [105, \"sharing-the-contents-of-test-definitions\"]\n- ],\n- \"Test repository for functional tests in LAVA\": [\n- [105, \"test-repository-for-functional-tests-in-lava\"]\n- ],\n- \"Using kernel messages in a test shell\": [\n- [105, \"using-kernel-messages-in-a-test-shell\"]\n- ],\n- \"Syntax\": [\n- [105, \"syntax\"]\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- ],\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 \"Automation and Timeouts\": [\n [106, \"automation-and-timeouts\"]\n ],\n \"Why must timeouts exist?\": [\n [106, \"why-must-timeouts-exist\"]\n ],\n \"How long should an operation wait?\": [\n@@ -10050,246 +9858,238 @@\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- \"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+ \"Writing a Lava-Test Test Definition 1.0\": [\n+ [111, \"writing-a-lava-test-test-definition-1-0\"]\n ],\n- \"Custom table queries\": [\n- [103, \"custom-table-queries\"]\n+ \"Writing a test definition YAML file\": [\n+ [111, \"writing-a-test-definition-yaml-file\"]\n ],\n- \"Exclusive table searches\": [\n- [103, \"exclusive-table-searches\"]\n+ \"Optional metadata\": [\n+ [111, \"optional-metadata\"]\n ],\n- \"Other filters\": [\n- [103, \"other-filters\"]\n+ \"Deprecated installation commands\": [\n+ [111, \"deprecated-installation-commands\"]\n ],\n- \"Resetting a table\": [\n- [103, \"resetting-a-table\"]\n+ \"Writing commands to run on the device\": [\n+ [111, \"writing-commands-to-run-on-the-device\"]\n ],\n- \"Unavailable entries\": [\n- [103, \"unavailable-entries\"]\n+ \"Using inline test definitions\": [\n+ [111, \"using-inline-test-definitions\"]\n ],\n- \"Device type information in LAVA Scheduler\": [\n- [64, \"device-type-information-in-lava-scheduler\"]\n+ \"Terminology reference\": [\n+ [111, \"terminology-reference\"]\n ],\n- \"Static device-type information\": [\n- [64, \"static-device-type-information\"]\n+ \"LAVA Test Job\": [\n+ [111, \"lava-test-job\"]\n ],\n- \"Device type template\": [\n- [64, \"device-type-template\"]\n+ \"LAVA Test Shell Definition\": [\n+ [111, \"lava-test-shell-definition\"]\n ],\n- \"Dynamic device-type information\": [\n- [64, \"dynamic-device-type-information\"]\n+ \"LAVA Test Helpers\": [\n+ [111, \"lava-test-helpers\"]\n ],\n- \"Device-type metadata\": [\n- [64, \"device-type-metadata\"]\n+ \"Supporting OS variants\": [\n+ [111, \"supporting-os-variants\"]\n ],\n- \"Health Job Summary\": [\n- [64, \"health-job-summary\"]\n+ \"Test Writer Scripts\": [\n+ [111, \"test-writer-scripts\"]\n ],\n- \"Devices Overview\": [\n- [64, \"devices-overview\"]\n+ \"Writing custom scripts to support tests\": [\n+ [111, \"writing-custom-scripts-to-support-tests\"]\n ],\n- \"Jobs for devices of this type\": [\n- [64, \"jobs-for-devices-of-this-type\"]\n+ \"Advantages of custom scripts\": [\n+ [111, \"advantages-of-custom-scripts\"]\n ],\n- \"Packaging lava-server for distributions\": [\n- [77, \"packaging-lava-server-for-distributions\"]\n+ \"Detailed knowledge of the output\": [\n+ [111, \"detailed-knowledge-of-the-output\"]\n ],\n- \"Apache distribution support\": [\n- [77, \"apache-distribution-support\"]\n+ \"Increased portability\": [\n+ [111, \"increased-portability\"]\n ],\n- \"Instance name\": [\n- [77, \"instance-name\"]\n+ \"Script interpreters\": [\n+ [111, \"script-interpreters\"]\n ],\n- \"LAVA Components\": [\n- [77, \"lava-components\"]\n+ \"Using commands as test cases\": [\n+ [111, \"using-commands-as-test-cases\"]\n ],\n- \"Package dependencies\": [\n- [77, \"package-dependencies\"]\n+ \"Recording test case results\": [\n+ [111, \"recording-test-case-results\"]\n ],\n- \"Daemon renaming\": [\n- [77, \"daemon-renaming\"]\n+ \"Recording test case measurements and units\": [\n+ [111, \"recording-test-case-measurements-and-units\"]\n ],\n- \"Migrating to LAVA V2\": [\n- [71, \"migrating-to-lava-v2\"]\n+ \"Recording sets of test cases\": [\n+ [111, \"recording-sets-of-test-cases\"]\n ],\n- \"Basics\": [\n- [71, \"basics\"]\n+ \"Recording test case references\": [\n+ [111, \"recording-test-case-references\"]\n ],\n- \"Specific information and guides\": [\n- [71, \"specific-information-and-guides\"]\n+ \"Test shell parameters\": [\n+ [111, \"test-shell-parameters\"]\n ],\n- \"Test Writers\": [\n- [71, \"test-writers\"]\n+ \"Obtaining information about the device\": [\n+ [111, \"obtaining-information-about-the-device\"]\n ],\n- \"Administrators\": [\n- [71, \"administrators\"]\n+ \"Recording test case data\": [\n+ [111, \"recording-test-case-data\"]\n ],\n- \"Understanding test job objectives\": [\n- [71, \"understanding-test-job-objectives\"]\n+ \"Simple strings\": [\n+ [111, \"simple-strings\"]\n ],\n- \"Pipeline support\": [\n- [71, \"pipeline-support\"]\n+ \"Files\": [\n+ [111, \"files\"]\n ],\n- \"Viewing the available support\": [\n- [71, \"viewing-the-available-support\"]\n+ \"Measurements\": [\n+ [111, \"measurements\"]\n ],\n- \"Deployments\": [\n- [71, \"deployments\"]\n+ \"The lava test results\": [\n+ [111, \"the-lava-test-results\"]\n ],\n- \"Protocol support\": [\n- [71, \"protocol-support\"]\n+ \"Best practices for writing a LAVA test job\": [\n+ [111, \"best-practices-for-writing-a-lava-test-job\"]\n ],\n- \"Continuous Integration\": [\n- [67, \"continuous-integration\"]\n+ \"Write portable test definitions\": [\n+ [111, \"write-portable-test-definitions\"]\n ],\n- \"Summary of CI best practices\": [\n- [67, \"summary-of-ci-best-practices\"]\n+ \"Rely less on install: steps\": [\n+ [111, \"rely-less-on-install-steps\"]\n ],\n- \"LAVA and CI\": [\n- [67, \"lava-and-ci\"]\n+ \"Use different test definitions for different test areas\": [\n+ [111, \"use-different-test-definitions-for-different-test-areas\"]\n ],\n- \"Automation & CI\": [\n- [67, \"automation-ci\"]\n+ \"Use different jobs for different test environments\": [\n+ [111, \"use-different-jobs-for-different-test-environments\"]\n ],\n- \"How does this affect testing with LAVA?\": [\n- [67, \"how-does-this-affect-testing-with-lava\"]\n+ \"Use a limited number of test definitions per job\": [\n+ [111, \"use-a-limited-number-of-test-definitions-per-job\"]\n ],\n- \"Worked example of migrating a known device\": [\n- [70, \"worked-example-of-migrating-a-known-device\"]\n+ \"Retain at least some debug output in the final test definitions\": [\n+ [111, \"retain-at-least-some-debug-output-in-the-final-test-definitions\"]\n ],\n- \"Writing a device configuration in YAML\": [\n- [70, \"writing-a-device-configuration-in-yaml\"]\n+ \"Mock up the device output to test the scripts\": [\n+ [111, \"mock-up-the-device-output-to-test-the-scripts\"]\n ],\n- \"Migrating a mustang\": [\n- [70, \"migrating-a-mustang\"]\n+ \"Use functional tests to validate common functionality\": [\n+ [111, \"use-functional-tests-to-validate-common-functionality\"]\n ],\n- \"Complete device YAML\": [\n- [70, \"complete-device-yaml\"]\n+ \"Check for specific support as a test case\": [\n+ [111, \"check-for-specific-support-as-a-test-case\"]\n ],\n- \"Writing a job submission in YAML\": [\n- [70, \"writing-a-job-submission-in-yaml\"]\n+ \"Check custom scripts for side-effects\": [\n+ [111, \"check-custom-scripts-for-side-effects\"]\n ],\n- \"Migrating a job for the mustang\": [\n- [70, \"migrating-a-job-for-the-mustang\"]\n+ \"Call lava-test-raise if setup fails\": [\n+ [111, \"call-lava-test-raise-if-setup-fails\"]\n ],\n- \"Identifying the elements of the job\": [\n- [70, \"identifying-the-elements-of-the-job\"]\n+ \"Inline\": [\n+ [111, \"inline\"]\n ],\n- \"Complete YAML submission\": [\n- [70, \"complete-yaml-submission\"]\n+ \"Using a repository\": [\n+ [111, \"using-a-repository\"]\n ],\n- \"Writing a device type template\": [\n- [70, \"writing-a-device-type-template\"]\n+ \"Shell library\": [\n+ [111, \"shell-library\"]\n ],\n- \"Starting a new device type template\": [\n- [70, \"starting-a-new-device-type-template\"]\n+ \"Calling shell script\": [\n+ [111, \"calling-shell-script\"]\n ],\n- \"Completed mustang template\": [\n- [70, \"completed-mustang-template\"]\n+ \"Test shell definition\": [\n+ [111, \"test-shell-definition\"]\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+ \"Custom scripts\": [\n+ [111, \"setup-custom-scripts\"]\n ],\n- \"Testing the template and dictionary\": [\n- [70, \"testing-the-template-and-dictionary\"]\n+ \"Example of lava-test-raise\": [\n+ [111, \"example-of-lava-test-raise\"]\n ],\n- \"Adapting the base commands to the device type\": [\n- [70, \"adapting-the-base-commands-to-the-device-type\"]\n+ \"Control the amount of output from scripts and tools\": [\n+ [111, \"control-the-amount-of-output-from-scripts-and-tools\"]\n ],\n- \"Completing the migration\": [\n- [70, \"completing-the-migration\"]\n+ \"Specific tools\": [\n+ [111, \"specific-tools\"]\n ],\n- \"Other Topics\": [\n- [76, \"other-topics\"]\n+ \"Problems with output\": [\n+ [111, \"problems-with-output\"]\n ],\n- \"Understanding the Pipeline - an administrator guide\": [\n- [79, \"understanding-the-pipeline-an-administrator-guide\"]\n+ \"Control the number of test cases reported\": [\n+ [111, \"control-the-number-of-test-cases-reported\"]\n ],\n- \"Device type templates\": [\n- [79, \"device-type-templates\"]\n+ \"User notifications in LAVA\": [\n+ [107, \"user-notifications-in-lava\"]\n ],\n- \"Checking your templates\": [\n- [79, \"checking-your-templates\"]\n+ \"Notification recipients\": [\n+ [107, \"notification-recipients\"]\n ],\n- \"Finding your way around the files\": [\n- [79, \"finding-your-way-around-the-files\"]\n+ \"Notification callbacks\": [\n+ [107, \"notification-callbacks\"]\n ],\n- \"Information sources\": [\n- [79, \"information-sources\"]\n+ \"Debugging notification callbacks\": [\n+ [107, \"debugging-notification-callbacks\"]\n ],\n- \"The functional tests repository\": [\n- [79, \"the-functional-tests-repository\"]\n+ \"Using profile settings\": [\n+ [107, \"using-profile-settings\"]\n ],\n- \"The lava-server unit test support\": [\n- [79, \"the-lava-server-unit-test-support\"]\n+ \"Direct listing of recipients\": [\n+ [107, \"direct-listing-of-recipients\"]\n ],\n- \"Extra device configuration\": [\n- [79, \"extra-device-configuration\"]\n+ \"Result comparison in notifications\": [\n+ [107, \"result-comparison-in-notifications\"]\n ],\n- \"Providing permanent IPv4 addresses\": [\n- [79, \"providing-permanent-ipv4-addresses\"]\n+ \"Administering VLANd support in LAVA\": [\n+ [109, \"administering-vland-support-in-lava\"]\n ],\n- \"Providing temporary filesystem storage\": [\n- [79, \"providing-temporary-filesystem-storage\"]\n+ \"Mandatory Constraints\": [\n+ [109, \"mandatory-constraints\"]\n ],\n- \"Extra dispatcher configuration\": [\n- [79, \"extra-dispatcher-configuration\"]\n+ \"Single set of switches\": [\n+ [109, \"single-set-of-switches\"]\n ],\n- \"Per dispatcher environment settings\": [\n- [79, \"per-dispatcher-environment-settings\"]\n+ \"Switches must have drivers in vland\": [\n+ [109, \"switches-must-have-drivers-in-vland\"]\n ],\n- \"Requirements for a LAVA device\": [\n- [79, \"requirements-for-a-lava-device\"]\n+ \"Accurate map of network topology\": [\n+ [109, \"accurate-map-of-network-topology\"]\n ],\n- \"Adding support for a device of a known type\": [\n- [79, \"adding-support-for-a-device-of-a-known-type\"]\n+ \"Identification of primary interfaces\": [\n+ [109, \"identify-primary-interfaces\"]\n ],\n- \"Obtaining configuration of a known device\": [\n- [79, \"obtaining-configuration-of-a-known-device\"]\n+ \"Additional advice\": [\n+ [109, \"additional-advice\"]\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+ \"Example device dictionary\": [\n+ [109, \"example-device-dictionary\"]\n ],\n- \"Based upon an existing device\": [\n- [79, \"based-upon-an-existing-device\"]\n+ \"Viewing the network map\": [\n+ [109, \"viewing-the-network-map\"]\n ],\n- \"Viewing current device dictionary content\": [\n- [79, \"viewing-current-device-dictionary-content\"]\n+ \"Standard test job for QEMU - Stretch amd64\": [\n+ [100, \"standard-test-job-for-qemu-stretch-amd64\"]\n ],\n- \"Updating a device dictionary\": [\n- [79, \"updating-a-device-dictionary\"]\n+ \"arch\": [\n+ [100, \"arch\"]\n ],\n- \"Using the command line\": [\n- [79, \"using-the-command-line\"]\n+ \"netdevice\": [\n+ [100, \"netdevice\"]\n ],\n- \"Using lavacli\": [\n- [79, \"using-lavacli\"],\n- [69, \"using-lavacli\"]\n+ \"Next steps\": [\n+ [100, \"next-steps\"]\n ],\n- \"Using XML-RPC\": [\n- [79, \"using-xml-rpc\"]\n+ \"Job submission failure help\": [\n+ [66, \"job-submission-failure-help\"]\n ],\n- \"lavacli\": [\n- [69, \"lavacli\"]\n+ \"Device type X is not available\": [\n+ [66, \"device-type-x-is-not-available\"]\n ],\n- \"Installing lavacli\": [\n- [69, \"installing-lavacli\"]\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 \"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@@ -10313,95 +10113,83 @@\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- \"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+ \"Worked example of migrating a known device\": [\n+ [70, \"worked-example-of-migrating-a-known-device\"]\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+ \"Writing a device configuration in YAML\": [\n+ [70, \"writing-a-device-configuration-in-yaml\"]\n ],\n- \"lava-role\": [\n- [74, \"lava-role\"]\n+ \"Migrating a mustang\": [\n+ [70, \"migrating-a-mustang\"]\n ],\n- \"lava-group\": [\n- [74, \"lava-group\"]\n+ \"Complete device YAML\": [\n+ [70, \"complete-device-yaml\"]\n ],\n- \"lava-send\": [\n- [74, \"lava-send\"]\n+ \"Writing a job submission in YAML\": [\n+ [70, \"writing-a-job-submission-in-yaml\"]\n ],\n- \"lava-wait\": [\n- [74, \"lava-wait\"]\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\"]\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\"]\n+ \"Complete YAML submission\": [\n+ [70, \"complete-yaml-submission\"]\n ],\n- \"lava-wait-all \": [\n- [74, \"lava-wait-all-message-id-role\"]\n+ \"Writing a device type template\": [\n+ [70, \"writing-a-device-type-template\"]\n ],\n- \"lava-sync\": [\n- [74, \"lava-sync\"]\n+ \"Starting a new device type template\": [\n+ [70, \"starting-a-new-device-type-template\"]\n ],\n- \"Example 1: Simple client-server MultiNode test\": [\n- [74, \"example-1-simple-client-server-multinode-test\"]\n+ \"Completed mustang template\": [\n+ [70, \"completed-mustang-template\"]\n ],\n- \"Example 2: iperf client-server test\": [\n- [74, \"example-2-iperf-client-server-test\"]\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 ],\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- \"PDUDaemon\": [\n- [78, \"pdudaemon\"]\n+ \"Device type information in LAVA Scheduler\": [\n+ [64, \"device-type-information-in-lava-scheduler\"]\n ],\n- \"Writing a monitors test action\": [\n- [72, \"writing-a-monitors-test-action\"]\n+ \"Static device-type information\": [\n+ [64, \"static-device-type-information\"]\n ],\n- \"Restrictions\": [\n- [72, \"restrictions\"]\n+ \"Device type template\": [\n+ [64, \"device-type-template\"]\n ],\n- \"Example test monitors job\": [\n- [72, \"example-test-monitors-job\"]\n+ \"Dynamic device-type information\": [\n+ [64, \"dynamic-device-type-information\"]\n ],\n- \"Job submission failure help\": [\n- [66, \"job-submission-failure-help\"]\n+ \"Device-type metadata\": [\n+ [64, \"device-type-metadata\"]\n ],\n- \"Device type X is not available\": [\n- [66, \"device-type-x-is-not-available\"]\n+ \"Health Job Summary\": [\n+ [64, \"health-job-summary\"]\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+ \"Devices Overview\": [\n+ [64, \"devices-overview\"]\n ],\n- \"Naming conventions and LAVA architecture\": [\n- [75, \"naming-conventions-and-lava-architecture\"]\n+ \"Jobs for devices of this type\": [\n+ [64, \"jobs-for-devices-of-this-type\"]\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@@ -10449,14 +10237,17 @@\n ],\n \"Install Steps\": [\n [68, \"install-steps\"]\n ],\n \"Parse patterns\": [\n [68, \"parse-patterns\"]\n ],\n+ \"Naming conventions and LAVA architecture\": [\n+ [75, \"naming-conventions-and-lava-architecture\"]\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@@ -10472,14 +10263,223 @@\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+ ],\n+ \"Specific information and guides\": [\n+ [71, \"specific-information-and-guides\"]\n+ ],\n+ \"Test Writers\": [\n+ [71, \"test-writers\"]\n+ ],\n+ \"Administrators\": [\n+ [71, \"administrators\"]\n+ ],\n+ \"Understanding test job objectives\": [\n+ [71, \"understanding-test-job-objectives\"]\n+ ],\n+ \"Pipeline support\": [\n+ [71, \"pipeline-support\"]\n+ ],\n+ \"Viewing the available support\": [\n+ [71, \"viewing-the-available-support\"]\n+ ],\n+ \"Deployments\": [\n+ [71, \"deployments\"]\n+ ],\n+ \"Protocol support\": [\n+ [71, \"protocol-support\"]\n+ ],\n+ \"Other Topics\": [\n+ [76, \"other-topics\"]\n+ ],\n+ \"Continuous Integration\": [\n+ [67, \"continuous-integration\"]\n+ ],\n+ \"Summary of CI best practices\": [\n+ [67, \"summary-of-ci-best-practices\"]\n+ ],\n+ \"LAVA and CI\": [\n+ [67, \"lava-and-ci\"]\n+ ],\n+ \"Automation & CI\": [\n+ [67, \"automation-ci\"]\n+ ],\n+ \"How does this affect testing with LAVA?\": [\n+ [67, \"how-does-this-affect-testing-with-lava\"]\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+ \"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+ [77, \"instance-name\"]\n+ ],\n+ \"LAVA Components\": [\n+ [77, \"lava-components\"]\n+ ],\n+ \"Package dependencies\": [\n+ [77, \"package-dependencies\"]\n+ ],\n+ \"Daemon renaming\": [\n+ [77, \"daemon-renaming\"]\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+ ],\n+ \"lava-role\": [\n+ [74, \"lava-role\"]\n+ ],\n+ \"lava-group\": [\n+ [74, \"lava-group\"]\n+ ],\n+ \"lava-send\": [\n+ [74, \"lava-send\"]\n+ ],\n+ \"lava-wait\": [\n+ [74, \"lava-wait\"]\n+ ],\n+ \"lava-wait-all\": [\n+ [74, \"lava-wait-all\"]\n+ ],\n+ \"lava-wait-all \": [\n+ [74, \"lava-wait-all-message-id\"]\n+ ],\n+ \"lava-wait-all \": [\n+ [74, \"lava-wait-all-message-id-role\"]\n+ ],\n+ \"lava-sync\": [\n+ [74, \"lava-sync\"]\n+ ],\n+ \"Example 1: Simple client-server MultiNode test\": [\n+ [74, \"example-1-simple-client-server-multinode-test\"]\n+ ],\n+ \"Example 2: iperf client-server test\": [\n+ [74, \"example-2-iperf-client-server-test\"]\n+ ],\n+ \"Example 3: variable number of clients\": [\n+ [74, \"example-3-variable-number-of-clients\"]\n+ ],\n+ \"Example 4: peer-to-peer application\": [\n+ [74, \"example-4-peer-to-peer-application\"]\n+ ],\n+ \"Using a flow table to plan the job\": [\n+ [74, \"using-a-flow-table-to-plan-the-job\"]\n+ ],\n+ \"PDUDaemon\": [\n+ [78, \"pdudaemon\"]\n+ ],\n+ \"lavacli\": [\n+ [69, \"lavacli\"]\n+ ],\n+ \"Installing lavacli\": [\n+ [69, \"installing-lavacli\"]\n+ ],\n+ \"Using lavacli\": [\n+ [69, \"using-lavacli\"],\n+ [79, \"using-lavacli\"]\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+ \"Checking your templates\": [\n+ [79, \"checking-your-templates\"]\n+ ],\n+ \"Finding your way around the files\": [\n+ [79, \"finding-your-way-around-the-files\"]\n+ ],\n+ \"Information sources\": [\n+ [79, \"information-sources\"]\n+ ],\n+ \"The functional tests repository\": [\n+ [79, \"the-functional-tests-repository\"]\n+ ],\n+ \"The lava-server unit test support\": [\n+ [79, \"the-lava-server-unit-test-support\"]\n+ ],\n+ \"Extra device configuration\": [\n+ [79, \"extra-device-configuration\"]\n+ ],\n+ \"Providing permanent IPv4 addresses\": [\n+ [79, \"providing-permanent-ipv4-addresses\"]\n+ ],\n+ \"Providing temporary filesystem storage\": [\n+ [79, \"providing-temporary-filesystem-storage\"]\n+ ],\n+ \"Extra dispatcher configuration\": [\n+ [79, \"extra-dispatcher-configuration\"]\n+ ],\n+ \"Per dispatcher environment settings\": [\n+ [79, \"per-dispatcher-environment-settings\"]\n+ ],\n+ \"Requirements for a LAVA device\": [\n+ [79, \"requirements-for-a-lava-device\"]\n+ ],\n+ \"Adding support for a device of a known type\": [\n+ [79, \"adding-support-for-a-device-of-a-known-type\"]\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+ \"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 XML-RPC\": [\n+ [79, \"using-xml-rpc\"]\n ]\n },\n \"indexentries\": {\n \"auto login\": [\n [0, \"index-0\"]\n ],\n \"auto login login commands\": [\n"}]}]}]}]}]}