Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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

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

    • Code Block
      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 /wiki/spaces/DCO/pages/9497319397. 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

    • Code Block
      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:

      Code Block
      [root@<node> ~]# visudo /etc/sudoers.d/<username>
    • Include the following in this file (replace <username> w/ your username):

      Code Block
      <username> ALL=(ALL) NOPASSWD:ALL
    • 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)

      Code Block
      $ sudo dnf install python3-avocado{,-plugins-{output-html,varianter-yaml-to-mux}}

      Pip install

      code
Info

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

      Code Block
      $ sudo dnf list --showduplicates daos
  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).

      Code Block
      $ sudo dnf install ~/rpm/daos{,-{client,server,tests}}-<version>.rpm
  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

      Code Block
      $ sudo dnf list --showduplicates ior

...

Running functional tests with RPMs

  1. Set python environment for avocado modules, e.g.,

    Code Block
    export PYTHONPATH=/usr/lib64/python3.6/site-packages/

    Note: /usr/ directory in the above path might be /usr/local, if the python modules were not installed by superuser.

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

    Code Block
    sudo vi /usr/lib/daos/TESTING/ftest/<dir>/<file>
    sudo cp <modified_file> /usr/lib/daos/TESTING/ftest/<dir>
  3. Run the test

    1. When running with unique server and client nodes

      Code Block
      cd /usr/lib/daos/TESTING/ftest
      ./launch.py -crispa -ts <server_nodes> -tc <client_nodes> <test_tag_or_file>
    2. When running with nodes that can perform any role

      Code Block
      cd /usr/lib/daos/TESTING/ftest
      ./launch.py -crispa -ts <all_nodes> <test_tag_or_file>
  4. View results

    Code Block
    less ~/avocado/job-results/latest/job.log

...

Info

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