{"id":22281151,"url":"https://github.com/clusterlabs/crmsh","last_synced_at":"2025-04-06T09:09:32.370Z","repository":{"id":15176945,"uuid":"17904765","full_name":"ClusterLabs/crmsh","owner":"ClusterLabs","description":"Command-line interface for High-Availability cluster management on GNU/Linux systems.","archived":false,"fork":false,"pushed_at":"2024-09-14T07:16:09.000Z","size":28965,"stargazers_count":130,"open_issues_count":78,"forks_count":94,"subscribers_count":30,"default_branch":"master","last_synced_at":"2024-09-14T18:43:45.579Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ClusterLabs.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2014-03-19T13:18:01.000Z","updated_at":"2024-09-09T09:18:17.000Z","dependencies_parsed_at":"2023-09-22T22:38:14.047Z","dependency_job_id":"64801e40-ccea-4266-8329-c1df52fd2ce7","html_url":"https://github.com/ClusterLabs/crmsh","commit_stats":null,"previous_names":[],"tags_count":60,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ClusterLabs%2Fcrmsh","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ClusterLabs%2Fcrmsh/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ClusterLabs%2Fcrmsh/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ClusterLabs%2Fcrmsh/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ClusterLabs","download_url":"https://codeload.github.com/ClusterLabs/crmsh/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247457803,"owners_count":20941906,"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-12-03T16:15:23.863Z","updated_at":"2025-04-06T09:09:32.356Z","avatar_url":"https://github.com/ClusterLabs.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# crmsh\n\n[![Build Status](https://github.com/ClusterLabs/crmsh/actions/workflows/crmsh-cd.yml/badge.svg)](https://github.com/ClusterLabs/crmsh/actions/workflows/crmsh-cd.yml)[![codecov](https://codecov.io/gh/ClusterLabs/crmsh/graph/badge.svg?token=16HW9ntzmz)](https://codecov.io/gh/ClusterLabs/crmsh)\n\n\n## Introduction\n\ncrmsh is a command-line interface for High-Availability cluster\nmanagement on GNU/Linux systems, and part of the Clusterlabs\nproject. It simplifies the configuration, management and\ntroubleshooting of Pacemaker-based clusters, by providing a powerful\nand intuitive set of features.\n\ncrmsh can function both as an interactive shell with tab completion\nand inline documentation, and as a command-line tool. It can also be\nused in batch mode to execute commands from files.\n\n## Documentation\n\n* The website for crmsh is here: [crmsh @ Github.io](http://crmsh.github.io).\n* Documentation for the latest stable release is found at the [Github.io documentation](http://crmsh.github.io) page.\n\n## Installation\n\nCrmsh is implemented in Python, and requires Python version 3.4 or\nnewer. Versions of crmsh older than the 4 series ran on Python 2, so\nif you don't have access to a Python 3 interpreter, you will need to\nuse one of the older releases.\n\nThe GNU Autotools suite is used to configure the OCF root directory,\nthe Asciidoc tool which is used to generate documentation and the\ndefault daemon user (usually hacluster).\n\nIt then calls the python setuptools setup.py to actually process the\nPython module sources and install into the Python system site-packages\ndirectory.\n\n```shell\n./autogen.sh\n./configure\nmake\nmake install\n```\n\n## Test suites\n\nThere are two sets of tests: Unit tests and regression tests.\n\n#### Unit tests\nIn local:\n- `pip install tox`\n- In root directory of crmsh project, run `tox`\n\n#### Functional tests\nIn local:\n- In root directory of crmsh project, run `./test/run-functional-tests [OPTIONS]|[TESTCASE INDEX]`\n\n```\n# ./test/run-functional-tests -h\nUsage: run-functional-tests [OPTIONS]|[TESTCASE INDEX]\nrun-functional-tests is a tool for developers to setup the cluster in containers to run functional tests.\nThe container image is based on Tumbleweed with preinstalled packages of the cluster stack include pacemaker/corosync/crmsh and many others.\nUsers can make the code change under crmsh.git including test cases. This tool will pick up the code change and \"make install\" to all running containers.\n\nOPTIONS:\n  -h, --help\t\tShow this help message and exit\n  -l            \tList existing functional test cases and exit\n  -n NUM        \tOnly setup a cluster with NUM nodes(containers)\n  -x\t\t\tDon't config corosync on containers(with -n option)\n  -d            \tCleanup the cluster containers\n```\n\nThe docker base image used is defined in the `Dockerfile` included in the repository.\n\n[In github action](https://github.com/ClusterLabs/crmsh/actions/workflows/crmsh-ci.yml)\n\n## Manifest\n\n```shell\n./doc: man page, source for the website and other documentation\n./crmsh: the code\n./templates: configuration templates\n./test: unit tests and regression tests\n./contrib: vim highlighting scripts and other semi-related\n           contributions\n./crm report: log file collection and analysis tool\n```\n\n## Development\n\nThe source code for crmsh is kept in a git source repository. To check\nout the latest development version, install git and run this command:\n\n```shell\ngit clone https://github.com/ClusterLabs/crmsh\n```\n\nThere is a git `pre-commit` hook used to update the data-manifest\nwhich lists all the data files to be installed. To install this, run\n\n```shell\ncp contrib/git-hook-pre-commit .git/hooks/pre-commit\nchmod +x .git/hooks/pre-commit\n```\n\n## Contributing\n\nYou can contribute following the standard `fork -\u003e clone -\u003e change -\u003e pull request` Github process for code changes. The pull request process is integrated with the [openSUSE Build Service](https://build.opensuse.org/), and as soon as it gets merged, a new RPM package is built on [network:ha-clustering:Unstable](https://build.opensuse.org/project/show/network:ha-clustering:Unstable) and a `submit request` is created to the _crmsh_ package maintainers at [network:ha-clustering:Factory](https://build.opensuse.org/project/show/network:ha-clustering:Factory).\n\nThe commit messages are used to create the changelog, so, please, include relevant and comprehensive messages on your commits.\n\n## Community\n\n* Bugs and issues can be reported at the [crmsh issues @ Github.com](https://github.com/clusterlabs/crmsh/issues) page.\n* Any other questions or comments can be made on the [Clusterlabs users mailing list](http://clusterlabs.org/mailman/listinfo/users).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclusterlabs%2Fcrmsh","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fclusterlabs%2Fcrmsh","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclusterlabs%2Fcrmsh/lists"}