{"id":25000611,"url":"https://github.com/gluster/redant","last_synced_at":"2025-04-12T08:52:30.890Z","repository":{"id":42458981,"uuid":"343738401","full_name":"gluster/redant","owner":"gluster","description":"A Test Automation Framework for a clustered network filesystem -\u003e GlusterFS","archived":false,"fork":false,"pushed_at":"2023-05-07T11:06:44.000Z","size":2022,"stargazers_count":3,"open_issues_count":9,"forks_count":13,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-12T08:52:25.853Z","etag":null,"topics":["distributed-testing","glusterfs","test-automation"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gluster.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-03-02T10:42:23.000Z","updated_at":"2022-01-07T05:37:39.000Z","dependencies_parsed_at":"2022-09-08T11:51:01.378Z","dependency_job_id":null,"html_url":"https://github.com/gluster/redant","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gluster%2Fredant","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gluster%2Fredant/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gluster%2Fredant/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gluster%2Fredant/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gluster","download_url":"https://codeload.github.com/gluster/redant/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248543883,"owners_count":21121838,"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":["distributed-testing","glusterfs","test-automation"],"created_at":"2025-02-04T19:36:14.424Z","updated_at":"2025-04-12T08:52:30.861Z","avatar_url":"https://github.com/gluster.png","language":"Python","readme":"# redant\n\n[![Open in Visual Studio Code](https://open.vscode.dev/badges/open-in-vscode.svg)](https://open.vscode.dev/gluster/redant)\n\n```console\n    ____  __________  ___    _   ________\n   / __ \\/ ____/ __ \\/   |  / | / /_  __/\n  / /_/ / __/ / / / / /| | /  |/ / / /   \n / _, _/ /___/ /_/ / ___ |/ /|  / / /    \n/_/ |_/_____/_____/_/  |_/_/ |_/ /_/     \n                                         \n\nusage: redant_main.py [-h] -c CONFIG_FILE -t TEST_DIR [-l LOG_DIR] [-ll LOG_LEVEL]\n                      [-cc CONCUR_COUNT] [-xls EXCEL_SHEET][--show-backtrace] [-kold]\n\nRedant test framework main script.\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -c CONFIG_FILE, --config CONFIG_FILE\n                        Config file(s) to read.\n  -t TEST_DIR, --test-dir TEST_DIR\n                        The test directory where TC(s) exist\n  -l LOG_DIR, --log-dir LOG_DIR\n                        The directory wherein log will be stored.\n  -ll LOG_LEVEL, --log-level LOG_LEVEL\n                        The log level. Default log level is Info\n  -cc CONCUR_COUNT, --concurrency-count CONCUR_COUNT\n                        Number of concurrent test runs. Default is 2.\n  -xls EXCEL_SHEET, --excel-sheet EXCEL_SHEET\n                        Spreadsheet for result. Default value is NULL\n  --show-backtrace      Show full backtrace on error\n  -kold, --keep-old-logs\n                        Don't clear the old glusterfs logs directory during environment setup.\n                        Default behavior is to clear the logs directory on each run.\n```\n\n## Tested and Supported Distros\n\n | Distro | Redant | Gluster Server | Gluster Client |\n | :----: | :----: | :------------: | :-------------:|\n |Fedora 32| :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |\n |Fedora 34|:heavy_check_mark: | :heavy_multiplication_x: | ✖️ |\n |RHEL 7.9| :heavy_multiplication_x: | :heavy_check_mark: | :heavy_check_mark:|\n |RHEL 8.4| :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |\n\nThe architects of any project won't be there forever with it \n( not everyone has the luxury to be a BDFL ), hence it is important to have \nthe thought process documented so that one doesn't need to go through the code. \nWe for one believe in proper documentation. The very idea of developers and \nengineers being spartans who understand logic only from code is what we feel as \n. We need to be civilized humans and make it easy for the next person coming \nin to just glance at what it is, why it is and how it is.\n\nBefore trying out redant, do check the [known issues](./docs/known_issues.md) section\n\nFor those who want a pure markdown experience and a deeper dive...\n\n\n# Readme Docs\nThe Documentation index can be found at [Docs](./docs/README.md)\n\n# Contents\n* [Set up](#set-up)\n* [Those looking to get into the action of migrating test cases](#those-looking-to-get-into-the-action-of-migrating-test-cases)\n* [Detailed Design](#design-document)\n\n## Set up\n\n### Pre requisites:\n1. Passwordless ssh between all (to self as well) the nodes in the cluster.\n2. Gluster installed on all the nodes and the bricks which would be used in the volumes,\nare created on all the servers.\n3. The following packages should be installed on all the nodes in the cluster, it includes\nsome packages which are required by external tools used in some test cases:\n  1. git\n  2. make\n  3. gcc\n  4. autoconf\n  5. automake\n  6. cronie\n  7. rsync\n  8. numpy\n  9. sh\n\n### To start Working:\n\n1. Clone redant repo.\n2. Populate the [config.yml](./config/config.yml) with relevant server and client details.\n\n\n### STEP-BY-STEP procedure to run:\n1. git clone `[your fork for this repo]`\n2. Create a virtual environment using :\n`virtualenv \u003cvirtual_env_name\u003e` or\n`python3 -m venv \u003cvirtual-env-name\u003e`\n3. Activate the virtual-env : `source \u003cvirtual_env_name\u003e/bin/activate`\n4. cd `[the-fork]`\n5. Run `pip3 install -r requirements.txt`\n6. Install the packages needed by some TCs by running the scripts under\n[`tools/pre-req_scripts`](./tools/pre-req_scripts)\n7. To run the sample TC, just run the below cmd after populating the\nconfig file with relevant values. The command has to be run from the main redant\nreository. The tests path should be given with respect to the redant directory.\n`python3 ./core/redant_main.py -c ./config/config.yml -t tests/example/`\nFor more options, run `python3 ./core/redant_main.py --help`\n8. Log files can be found at /var/log/redant/ [ default path ].\n\nThe logging is specific to a TC run. So when a user gives a specific base dir\nfor logging when invoking `redant_main.py`, that directory will inturn\ncontain the following dirs,\n -\u003e functional\n -\u003e performance\n -\u003e example\n\nNow, based on the invocation, directory of a component will be created inside\nthe functional and performace dirs. And inside the component directory,\nthe Test case specific directory will be created which inturn will contain\nvolume specific log files.\nSo for example to see the log files of a test case which is,\n`functional/\u003cgluster_component\u003e/\u003ctest_name\u003e/test_sample.py`\none would have to go to the directory,\n`\u003cbase_log_dir\u003e/\u003ctime_stamp\u003e/functional/\u003cgluster_component\u003e/test_sample`, \nwhich will inturn contain the log files specific to volume type.\n\nIn addition to running TCs from within a suite, either performance or\nfunctional or even under a more granular level of component, one can select to\nrun a specific TC also.\nFor example,\n`python3 core/redant_main.py -c config/config.yml -t tests/example/sample_component`\n\nOne can also run the scripts given under the tools dir which will reduce the\nlengthy commands to be typed out everytime. Check out the README.md at the link\n[Tools-README](./tools/README.md)\n\n## Those looking to get into the action of migrating test cases\n\nPlease refer the doc : [migratingTC.md](./docs/BP/Tools/migratingTC.md)\n\n## Design Document\n\n[Redant Design Doc](https://docs.google.com/document/d/1oJvUvvtfE5G8WlhFOg_gFbJwO2Ua7uCq12teqrjmwVU/edit?usp=sharing)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgluster%2Fredant","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgluster%2Fredant","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgluster%2Fredant/lists"}