clingwrap


Nameclingwrap JSON
Version 1.6.8 PyPI version JSON
download
home_pagehttps://shakenfist.com/clingwrap
Summaryclingwrap: wrap up CI artefacts and post them to Google Storage
upload_time2024-12-27 09:13:53
maintainerNone
docs_urlNone
authorMichael Still
requires_pythonNone
licenseApache2
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            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"
}
        
Elapsed time: 0.40557s