Manually Running Functional Tests from RPMs

Requirements

  • One or more nodes, typically a wolf/boro node, provisioned with a supported OS snapshot

    [user@wolf-ssh-2 ~]$ nodemgr install --profile daos_ci-el8.5 --nodes=<node>
  • Verify password-less ssh access between all nodes

    • ssh user@<node>
    • If passwordless ssh is working, you will not be prompted for your password. If you are prompted, please take a review your ssh forwarding. If you still have an issue please submit a ticket to DCO.

  • Enable sudo access for your account on each node

    • Log in to your node(s) as root

    • ssh root@<node>
      • You will be prompted for the root password. If you do not have this password, please contact your team lead to get it.

    • Create a sudoers file for your user:

    • Include the following in this file (replace <username> w/ your username):

    • Once this is finished, you should be able to ssh in as your user, then use sudo, or sudo -i for everything moving forward.

  • Install avocado (LTS release >= 69) on the node from which you will be running the tests

    • RPM installation (RECOMMENDED; currently supported on CentOS 8; others coming soon)

If RPMs do not exist for your OS use pip to install avocado

$ sudo pip3 install "avocado-framework<70.0" $ sudo pip3 install "avocado-framework-plugin-result-html<70.0" $ sudo pip3 install "avocado-framework-plugin-varianter-yaml-to-mux<70.0"

Additional steps may be required per OS. See ci/provisioning/post_provision_config_nodes_*.sh for details.

  • Avoid removing any packages that will also uninstall ipa-client

 

RPM Install Steps

  1. Obtain DAOS RPMs - multiple options

    1. Build them from sources

    2. Download them from a PR or recent successful master PR

      1. E.g. https://build.hpdd.intel.com/job/daos-stack/job/daos/job/master/5259/artifact/artifacts/

        1. Replace “5259“ with your PR number

        2. Select the appropriate OS sub-directory

    3. Use the repositories in the snapshot image to find the RPM version

  2. Install DAOS RPMs on each node

    1. The following command will install the daos, daos-client, daos-server, and daos-tests RPMs on one host (similar to CI).

  3. Optionally install other RPMs as needed for testing

    1. Latest master builds can be found at https://build.hpdd.intel.com/job/daos-stack/

      1. Example IOR: https://build.hpdd.intel.com/job/daos-stack/job/ior/job/master/lastSuccessfulBuild/artifact/artifacts/

    2. Can also use the repositories in the snapshot image

 

Running functional tests with RPMs

  1. Apply any python test code changes in the RPM install path (owned by root)

  2. Run the test

    1. When running with unique server and client nodes

    2. When running with nodes that can perform any role

  3. View results

Using the ‘-a’ launch.py command line option requires the installation of the daos-tests RPMs on each host specified in by the ‘-ts’ and ‘-tc’ arguments.

If a test requests more hosts than are available the ‘-o’ launch.py command line option can be used to run the test on less servers/clients w/o modifying the test yaml file.