Clingwrap
=========
Clingwrap is a simple debugging tool which collects information about the state of
a system and stores that information in a zip file for later analysis. It was
originally implemented for the Shaken Fist (https://shakenfist.com) project, but is
more generally useful than that.
Clingwrap takes a configuration file (see examples/shakenfist-ci-failure.cwd for an
example), and processes the list of commands in that file to produce the zip file
of debugging output. The commands are specified in a simple YAML format, where
a configuration file looks like this:
```
--
commands:
- name: Kernel version and architecture
destination: _commands/uname
shell: uname -a
- name: Installed system OS packages and versions
destination: _commands/dpkg
shell: dpkg -l
```
Possible commands are:
*file commands*: which record the contents of a file. For example:
```
- name: syslog
destination: var/log/syslog
file: /var/log/syslog
```
*directory commands*: which record all files in a given directory hierarchy, with a
possible simple exclusion regexp. For example:
```
- name: Shaken Fist instances
destination: /srv/shakenfist/instances
directory: /srv/shakenfist/instances
exclude: "hd[ac-z]"
```
*shell commands*: which take a command line or script and execute them in a shell. A
valid configuration is:
```
- name: Kernel version and architecture
destination: _commands/uname
shell: uname -a
```
*shell_emitter commands*: which run a shell script which emits further commands to
execute. This is useful for finding objects and then storing information about them.
A valid example is:
```
- name: Network namespaces
shell_emitter: |
for item in `find /var/run/netns -type f | sed 's/.*\///'`
do
echo "commands:
- name: Network interfaces (namespace $item)
destination: _commands/netns-$item/ip-link
shell: ip netns exec $item ip link
- name: Network addresses (namespace $item)
destination: _commands/netns-$item/ip-link
shell: ip netns exec $item ip addr
- name: Network routes (namespace $item)
destination: _commands/netns-$item/ip-link
shell: ip netns exec $item ip route
"
done
```
Raw data
{
"_id": null,
"home_page": "https://shakenfist.com/clingwrap",
"name": "clingwrap",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": null,
"author": "Michael Still",
"author_email": "mikal@stillhq.com",
"download_url": "https://files.pythonhosted.org/packages/ed/fd/f5af96e6e6e66709567c33b2cfcfb6db896306ea478811c9323099508d86/clingwrap-1.6.8.tar.gz",
"platform": null,
"description": "Clingwrap\n=========\n\nClingwrap is a simple debugging tool which collects information about the state of\na system and stores that information in a zip file for later analysis. It was\noriginally implemented for the Shaken Fist (https://shakenfist.com) project, but is\nmore generally useful than that.\n\nClingwrap takes a configuration file (see examples/shakenfist-ci-failure.cwd for an\nexample), and processes the list of commands in that file to produce the zip file\nof debugging output. The commands are specified in a simple YAML format, where\na configuration file looks like this:\n\n```\n--\ncommands:\n - name: Kernel version and architecture\n destination: _commands/uname\n shell: uname -a\n\n - name: Installed system OS packages and versions\n destination: _commands/dpkg\n shell: dpkg -l\n```\n\nPossible commands are:\n\n*file commands*: which record the contents of a file. For example:\n\n```\n - name: syslog\n destination: var/log/syslog\n file: /var/log/syslog\n```\n\n*directory commands*: which record all files in a given directory hierarchy, with a\npossible simple exclusion regexp. For example:\n\n```\n - name: Shaken Fist instances\n destination: /srv/shakenfist/instances\n directory: /srv/shakenfist/instances\n exclude: \"hd[ac-z]\"\n```\n\n*shell commands*: which take a command line or script and execute them in a shell. A\nvalid configuration is:\n\n```\n - name: Kernel version and architecture\n destination: _commands/uname\n shell: uname -a\n```\n\n*shell_emitter commands*: which run a shell script which emits further commands to\nexecute. This is useful for finding objects and then storing information about them.\nA valid example is:\n\n```\n - name: Network namespaces\n shell_emitter: |\n for item in `find /var/run/netns -type f | sed 's/.*\\///'`\n do\n echo \"commands:\n - name: Network interfaces (namespace $item)\n destination: _commands/netns-$item/ip-link\n shell: ip netns exec $item ip link\n\n - name: Network addresses (namespace $item)\n destination: _commands/netns-$item/ip-link\n shell: ip netns exec $item ip addr\n\n - name: Network routes (namespace $item)\n destination: _commands/netns-$item/ip-link\n shell: ip netns exec $item ip route\n \"\n done\n```\n\n",
"bugtrack_url": null,
"license": "Apache2",
"summary": "clingwrap: wrap up CI artefacts and post them to Google Storage",
"version": "1.6.8",
"project_urls": {
"Homepage": "https://shakenfist.com/clingwrap"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "39be3013bd2ad61dbc7e4135dd6d0d9298a19dd520c4e492fcd10258487b5d49",
"md5": "dba577ffc521254e0736c8cd171d184d",
"sha256": "097608de13f9cbb57de8d3f245fb3ddde9a8b1cc2ba0f57ee90aa21cc1b2c608"
},
"downloads": -1,
"filename": "clingwrap-1.6.8-py3-none-any.whl",
"has_sig": false,
"md5_digest": "dba577ffc521254e0736c8cd171d184d",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 10652,
"upload_time": "2024-12-27T09:13:51",
"upload_time_iso_8601": "2024-12-27T09:13:51.066197Z",
"url": "https://files.pythonhosted.org/packages/39/be/3013bd2ad61dbc7e4135dd6d0d9298a19dd520c4e492fcd10258487b5d49/clingwrap-1.6.8-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "edfdf5af96e6e6e66709567c33b2cfcfb6db896306ea478811c9323099508d86",
"md5": "a9b7dd479b99ec6ee6c19ab467d33c8d",
"sha256": "7db1320fa7ea46da59ea0851036995488b1ca8d60b4e12127fc2270729adecfc"
},
"downloads": -1,
"filename": "clingwrap-1.6.8.tar.gz",
"has_sig": false,
"md5_digest": "a9b7dd479b99ec6ee6c19ab467d33c8d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 11114,
"upload_time": "2024-12-27T09:13:53",
"upload_time_iso_8601": "2024-12-27T09:13:53.514988Z",
"url": "https://files.pythonhosted.org/packages/ed/fd/f5af96e6e6e66709567c33b2cfcfb6db896306ea478811c9323099508d86/clingwrap-1.6.8.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-27 09:13:53",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "clingwrap"
}