{"id":19378936,"url":"https://github.com/linbit/drbd9-tests","last_synced_at":"2025-10-29T01:20:35.904Z","repository":{"id":66601918,"uuid":"103643892","full_name":"LINBIT/drbd9-tests","owner":"LINBIT","description":"DRBD9 Test Suite","archived":false,"fork":false,"pushed_at":"2025-06-19T06:34:51.000Z","size":1442,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-07-10T07:01:00.715Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LINBIT.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-09-15T10:12:37.000Z","updated_at":"2025-06-19T06:34:58.000Z","dependencies_parsed_at":"2025-01-07T05:41:15.972Z","dependency_job_id":"7fd01055-30c1-4cc6-ace1-4486b18707a0","html_url":"https://github.com/LINBIT/drbd9-tests","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/LINBIT/drbd9-tests","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LINBIT%2Fdrbd9-tests","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LINBIT%2Fdrbd9-tests/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LINBIT%2Fdrbd9-tests/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LINBIT%2Fdrbd9-tests/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LINBIT","download_url":"https://codeload.github.com/LINBIT/drbd9-tests/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LINBIT%2Fdrbd9-tests/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265793684,"owners_count":23829180,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-10T09:08:01.644Z","updated_at":"2025-10-29T01:20:35.794Z","avatar_url":"https://github.com/LINBIT.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DRBD 9 Test Suite\n\nThis mainly is a test suite for version 9 of DRBD.  Some of the tests are\ncompatible with version 8 of DRBD as well, though.\n\nThe basic architecture of the test suite consists of a coordinator node and a\nnumber of target nodes.  The test coordinator first opens ssh connections to\neach of the target nodes to send the target nodes commands and collect results.\nThen it prepares the target nodes for the actual test by creating test volumes\nand a drbd configuration.  Once that is done, it sends the test nodes a series\nof commands as defined by the test case, and waits for specific changes to\noccur.  For example, it can tell the test cluster to bring itself up, and wait\nuntil all nodes are fully connected.  All the test results are collected on the\ncoordinator.  Finally, when a test ends, it attempts to clean up any changes\nmade on the target nodes.\n\nThe test scripts themselves are python scripts.\n\n\n## Requirements\n\nRunning the test suite requires the following components:\n\n * One test coordinator node.  The basic test infrastructure can be run as an\n   unprivileged user.\n\n * Typically two or more nodes to use as the test cluster.  The nodes must be\n   accessible over ssh without password prompt. (This is best configured by\n   putting the ssh public key of the user running the test suite into\n   `~root/.ssh/authorized_keys` on each test node.)\n\n * The DRBD 9 kernel module and user-space utilities must be installed on all\n   test nodes.\n\n * `iptables` on all test nodes.\n\n * For some tests, [fio](https://github.com/axboe/fio), the \"Flexible I/O\n   Tester\".\n\n * On each test node, all test volumes are currently created inside an LVM\n   volume group called `scratch`.  (The volume group name can be overridden\n   with the `--volume-group=\u003cname\u003e` option.)\n\n\n## Individual Test Runs\n\nEach individual test run is assigned a job name which consists of the base name\nof the test, with a timestamp appended: the `tests/connect` script would log\ninto directory `log/connect-20131015-173644/`, for example.  The following\nfiles can be found in the log directory:\n\n * `drbd.conf`: the DRBD configuration file used on all nodes.\n\n * `events-\u003cnode-name\u003e`: The output of `drbdsetup events` on each node.  These\n   event traces are used for checking for state transitions.\n\n * `test.log`: The output of the test script (everything written to `logstream`,\n   including messages logged by calling the `log` function).\n\n * `dmesg-\u003cnode-name\u003e`: The dmesg log of each node.\n\n * `console-\u003cnode-name\u003e`: the serial console output of each node (if the\n   `--vconsole` option is used).\n\n\nThe most important options supported by the test scripts are:\n\n * Positional arguments: The names of the test nodes.\n   Depending on the test, one, two, or more nodes are required.\n\n * `--debug`: Include some information for debugging the test suite.\n\n\n## Serial Consoles\n\nLogging the serial console output of virtual machines running on the test\ncoordinator is supported via the `--vconsole` option.  This requires that the\nvirtual machine is visible by the current user in `virsh`.  The name of the\nvirtual machine must be the same as the name used for accessing the node via\nssh.\n\n\n## Examples\n\n```\ntests/connect tick trick track\n```\n\n\n## GitLab\n\nSee [doc/gitlab.md](./doc/gitlab.md) for more information about test automation\nin GitLab including the different forms of testing which are used.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinbit%2Fdrbd9-tests","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flinbit%2Fdrbd9-tests","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinbit%2Fdrbd9-tests/lists"}