Hello Ryan,

the schema validator is not taking this into account.

Fixed by https://git.lavasoftware.org/lava/lava/-/merge_requests/1025

I also improved the reporting so you see the error when clicking on "validate".


Thanks

Le mer. 26 févr. 2020 à 20:48, Ryan Harkin <ryan.harkin@linaro.org> a écrit :
Hi LAVA folks,

I'm trying to create a multinode job based on iperf.yaml:

https://github.com/Linaro/test-definitions/blob/master/automated/linux/iperf/iperf.yaml

(note, this iperf.sh test doesn't actually work as intended, but that's a problem I'm debugging).

The full job definition is at the bottom of this email.

Anyway, I'm adding my own deploy and boot sections, as per working single node jobs. However, my deploy uses "command" actions, like this:

    - command:
        role:
        - host
        - guest
        namespace: dfu-firmware
        name: set_boot_to_nand

These give error messages like this:

    Invalid definition: extra keys not allowed @ data['actions'][1]['command']['role']

And if I remove the "role" settings, I get a different error:

    Valid definition with warnings: Every action of a multinode job should have roles

So it seems like I'm in a loop.

Any suggestions??

Thanks,
Ryan.

------------------------------------------------------
JOB DEFINITION
------------------------------------------------------
job_name: lces2-iperf
timeouts:
  job:
    minutes: 60
  action:
    minutes: 3
  connection:
    minutes: 5
priority: medium
visibility: public

metadata:
  iperf-version: v3

protocols:
  lava-multinode:
    roles:
      host:
        device_type: rzn1d
        count: 1
        timeout:
          minutes: 30
      guest:
        device_type: rzn1d
        count: 1
        timeout:
          minutes: 30

actions:



####################
# Deploy QSPI images
####################
- deploy:
    role:
    - host
    - guest
    namespace: dfu-firmware
    to: tmpfs
    images:
      sf_fsbl:
        image_arg: --alt sf_fsbl --download {sf_fsbl}
        url: https://snapshots.linaro.org/openembedded/schneider/linaro-warrior-4.9/rzn1d/24/dip/rzn1d-snarc-fsbl-fip-linaro-rel-2019.09-warrior.1-39-ga56d7fa-dirty.spkg
      sf_trustedfw:
        image_arg: --alt sf_trustedfw --download {sf_trustedfw}
        url: https://snapshots.linaro.org/openembedded/schneider/linaro-warrior-4.9/rzn1d/24/dip/optee/optee-os-linaro-rel-2019.09-warrior.1-39-ga56d7fa-dirty.itb
      sf_uboot0:
        image_arg: --alt sf_uboot0 --download {sf_uboot0}
        url: https://snapshots.linaro.org/openembedded/schneider/linaro-warrior-4.9/rzn1d/24/dip/ubootfitImage-linaro-rel-2019.09-warrior.1-39-ga56d7fa-dirty-rzn1d.itb
      sf_uboot1:
        image_arg: --alt sf_uboot1 --download {sf_uboot1}
        url: https://snapshots.linaro.org/openembedded/schneider/linaro-warrior-4.9/rzn1d/24/dip/ubootfitImage-linaro-rel-2019.09-warrior.1-39-ga56d7fa-dirty-rzn1d.itb


- command:
    namespace: dfu-firmware
    role:
    - host
    - guest
    name: set_boot_to_nand
- boot:
    namespace: dfu-firmware
    role:
    - host
    - guest
    method: dfu
    timeout:
      minutes: 10
- command:
    namespace: test
    role:
    - host
    - guest
    name: set_boot_to_qspi


###############
# TFTP/NFS
###############
- deploy:
    namespace: test-nfs
    role:
    - host
    - guest
    timeout:
      minutes: 5
    to: tftp
    os: oe
    kernel:
      url: https://snapshots.linaro.org/openembedded/schneider/linaro-warrior-4.9/rzn1d/24/dip/zImage--4.9.202+git0+191d76bbbb-r4.0-rzn1-snarc-20200226175514.bin
      type: zimage
    dtb:
      url: https://snapshots.linaro.org/openembedded/schneider/linaro-warrior-4.9/rzn1d/24/dip/rzn1d400-snarc-bestla--4.9.202+git0+191d76bbbb-r4.0-rzn1-snarc-20200226175514.dtb
    nfsrootfs:
      url: https://snapshots.linaro.org/openembedded/schneider/linaro-warrior-4.9/rzn1d/24/dip/dip-image-dev-rzn1-snarc-linaro-rel-2019.09-warrior.1-39-ga56d7fa-dirty-24.rootfs.tar.bz2
      compression: bz2





- boot:
    namespace: test-nfs
    role:
    - host
    - guest
    connection-namespace: dfu-firmware
    timeout:
      minutes: 20
    method: u-boot
    commands:
    - setenv autoload no
    - dhcp
    - dhcp
    - env print
    - setenv serverip {SERVER_IP}
    - tftp {KERNEL_ADDR} {KERNEL}
    - tftp {DTB_ADDR} {DTB}
    - setenv bootargs 'console=ttyS0,115200n8 root=/dev/nfs rw nfsroot={NFS_SERVER_IP}:{NFSROOTFS},tcp,hard,intr,vers=3
      rootwait coherent_pool=2M ip=dhcp'
    - '{BOOTX}'
    auto_login:
      login_prompt: 'login:'
      username: root
    prompts:
    - 'root@snarc-soca9:'
    - 'root@rzn1-snarc:'





- test:
    namespace: test-nfs
    role:
    - host
    timeout:
      minutes: 30
    definitions:
    - repository:
        metadata:
          format: Lava-Test Test Definition 1.0
          name: run-iperf3-server
          description: "Run iperf3 in server mode"
        run:
          steps:
          - apt-get -y update
          - apt-get -y install iperf3
          - if iperf3 -s -D; then lava-test-case run-iperf3-server --result 'pass'; else lava-test-raise 'Failed to run ipef3 server'; fi
          - lava-send server-ready ipaddr=$(lava-echo-ipv4 eth0)
          - lava-wait client-done
          - pkill iperf3
      from: inline
      name: run-iperf3-server
      path: inline/run-iperf3-server.yaml

- test:
    namespace: test-nfs
    role:
    - guest
    timeout:
      minutes: 30
    definitions:
    - repository: https://git.linaro.org/people/chase.qi/test-definitions.git
      from: git
      path: automated/linux/iperf/iperf.yaml
      name: iperf3-test
      parameters:
        SERVER: lava-host-role
        # The MSG ID and KEY should be the same as the ones sent by lava-send above
        MSG_ID: server-ready
        MSG_KEY: ipaddr
_______________________________________________
Lava-users mailing list
Lava-users@lists.lavasoftware.org
https://lists.lavasoftware.org/mailman/listinfo/lava-users


--
Rémi Duraffort
LAVA Architect
Linaro