cloudsnake


Namecloudsnake JSON
Version 0.2.2 PyPI version JSON
download
home_pagehttps://github.com/containerscrew/cloudsnake
SummaryAWS cli operations with pretty TUI
upload_time2024-05-29 21:49:54
maintainerNone
docs_urlNone
authorcontainerscrew
requires_python<4.0,>=3.12
licenseMIT
keywords aws cli rich textual cloudsnake
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <p align="center" >
    <img src="logo.png" alt="logo" width="250"/>
    <h3 align="center">cloudsnake 🐍</h3>
    <p align="center">Wrapping some awscli commands with beautiful TUI</p>
    <p align="center">Build with ❤ in Python</p>
</p>

<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
**Table of Contents**  *generated with [DocToc](https://github.com/thlorenz/doctoc)*

- [Introduction](#introduction)
- [Installation](#installation)
- [Badges](#badges)
- [TO DO](#to-do)
- [TOP LINKS](#top-links)
- [Tools](#tools)
- [Poetry commands](#poetry-commands)
- [Cloudsnake commands](#cloudsnake-commands)
  - [License](#license)

<!-- END doctoc generated TOC please keep comment here to allow auto update -->

# Introduction

Lorem ipsum....

# Installation

```console
pip3 install cloudsnake
pipx install cloudsnake
```

# Badges

|         |                                                                                                                                                                                                                                                                                                                                                         |
|---------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Code    | ![Code Size](https://img.shields.io/github/languages/code-size/containerscrew/tftools)                                                                                                                                                                                                                                                                  |
| CI/CD   | [![CI - Test](https://github.com/ofek/hatch-showcase/actions/workflows/test.yml/badge.svg)](https://github.com/ofek/hatch-showcase/actions/workflows/test.yml) [![CD - Build](https://github.com/ofek/hatch-showcase/actions/workflows/build.yml/badge.svg)](https://github.com/ofek/hatch-showcase/actions/workflows/build.yml)                        |
| Package | [![python](https://img.shields.io/badge/Python-3.12-3776AB.svg?style=flat&logo=python&logoColor=white)](https://www.python.org)[![PyPI - Version](https://img.shields.io/pypi/v/hatch-showcase.svg?logo=pypi&label=PyPI&logoColor=gold)](https://pypi.org/project/hatch-showcase/) ![packaging](https://img.shields.io/badge/packaging-poetry-cyan.svg) |
| Meta    | [![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit) [![License - MIT](https://img.shields.io/badge/license-MIT-9400d3.svg)](https://spdx.org/licenses/)                                                                                             |
| Linter  | [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)                                                                                                                                                                                            |




# TO DO

* Implement websocket protocol of ssm-session-plugin
* Implement python textual for OptionList
* Reorganize global flags (region, profile, log-level)



# TOP LINKS

https://github.com/aws/aws-cli/blob/b6e7c5b79e4471713b2f7c660eff99b36d977064/awscli/customizations/sessionmanager.py#L83
https://stackoverflow.com/questions/57868722/unable-to-decode-aws-session-manager-websocket-output-in-python
https://github.com/aws/session-manager-plugin/blob/mainline/src/sessionmanagerplugin/session/shellsession/shellsession.go
Logger: https://stackoverflow.com/questions/384076/how-can-i-color-python-logging-output
Textual for beginners: https://mathspp.com/blog/textual-for-beginners
More of textual: https://dev.to/wiseai/textual-the-definitive-guide-part-1-1i0p
[Packaging projects](https://packaging.python.org/en/latest/tutorials/packaging-projects/)
[Poetry](https://python-poetry.org/docs/)
Some examples using boto3 SDK https://docs.aws.amazon.com/code-library/latest/ug/python_3_ec2_code_examples.html
Mocking: https://github.com/getmoto/moto

# Tools

1. EC2 SSM CONNECTION
2. ECS SSM CONNECTION
3. SSM GET PARAMETERS
4. MYSQL IAM CONNECTION
5. AWS RESOURCE BY TAG OUTPUT TABLE

# Poetry commands

```shell
poetry add boto3 dacite
poetry config pypi-token.pypi pypi-
poetry publish --build
```

# Cloudsnake commands

```shell
cloudsnake --help
cloudsnake ec2 describe-instances --filters "Name=instance-state-name,Values=running" --query 'Reservations[*].Instances[*].{Instance:InstanceId,VpcId:VpcId,AZ:Placement.AvailabilityZone,Name:Tags[?Key==`Name`]|[0].Value}' --output json
cloudsnake ec2 describe-instances --filters "Name=instance-state-name,Values=running" --output json
# Get instance name of running instances
cloudsnake ec2 describe-instances --filters "Name=instance-state-name,Values=running" --query 'Reservations[*].Instances[*].{InstanceName:Tags[?Key==`Name`]|[0].Value}' --output json
```

## License

`cloudsnake` is distributed under the terms of the [MIT](https://spdx.org/licenses/MIT.html) license.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/containerscrew/cloudsnake",
    "name": "cloudsnake",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.12",
    "maintainer_email": null,
    "keywords": "aws, cli, rich, textual, cloudsnake",
    "author": "containerscrew",
    "author_email": "info@containerscrew.com",
    "download_url": "https://files.pythonhosted.org/packages/a2/70/4f6741df99b684992e8466b0dd85673bf573aad38a32bf676f811adb56a6/cloudsnake-0.2.2.tar.gz",
    "platform": null,
    "description": "<p align=\"center\" >\n    <img src=\"logo.png\" alt=\"logo\" width=\"250\"/>\n    <h3 align=\"center\">cloudsnake \ud83d\udc0d</h3>\n    <p align=\"center\">Wrapping some awscli commands with beautiful TUI</p>\n    <p align=\"center\">Build with \u2764 in Python</p>\n</p>\n\n<!-- START doctoc generated TOC please keep comment here to allow auto update -->\n<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->\n**Table of Contents**  *generated with [DocToc](https://github.com/thlorenz/doctoc)*\n\n- [Introduction](#introduction)\n- [Installation](#installation)\n- [Badges](#badges)\n- [TO DO](#to-do)\n- [TOP LINKS](#top-links)\n- [Tools](#tools)\n- [Poetry commands](#poetry-commands)\n- [Cloudsnake commands](#cloudsnake-commands)\n  - [License](#license)\n\n<!-- END doctoc generated TOC please keep comment here to allow auto update -->\n\n# Introduction\n\nLorem ipsum....\n\n# Installation\n\n```console\npip3 install cloudsnake\npipx install cloudsnake\n```\n\n# Badges\n\n|         |                                                                                                                                                                                                                                                                                                                                                         |\n|---------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| Code    | ![Code Size](https://img.shields.io/github/languages/code-size/containerscrew/tftools)                                                                                                                                                                                                                                                                  |\n| CI/CD   | [![CI - Test](https://github.com/ofek/hatch-showcase/actions/workflows/test.yml/badge.svg)](https://github.com/ofek/hatch-showcase/actions/workflows/test.yml) [![CD - Build](https://github.com/ofek/hatch-showcase/actions/workflows/build.yml/badge.svg)](https://github.com/ofek/hatch-showcase/actions/workflows/build.yml)                        |\n| Package | [![python](https://img.shields.io/badge/Python-3.12-3776AB.svg?style=flat&logo=python&logoColor=white)](https://www.python.org)[![PyPI - Version](https://img.shields.io/pypi/v/hatch-showcase.svg?logo=pypi&label=PyPI&logoColor=gold)](https://pypi.org/project/hatch-showcase/) ![packaging](https://img.shields.io/badge/packaging-poetry-cyan.svg) |\n| Meta    | [![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit) [![License - MIT](https://img.shields.io/badge/license-MIT-9400d3.svg)](https://spdx.org/licenses/)                                                                                             |\n| Linter  | [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)                                                                                                                                                                                            |\n\n\n\n\n# TO DO\n\n* Implement websocket protocol of ssm-session-plugin\n* Implement python textual for OptionList\n* Reorganize global flags (region, profile, log-level)\n\n\n\n# TOP LINKS\n\nhttps://github.com/aws/aws-cli/blob/b6e7c5b79e4471713b2f7c660eff99b36d977064/awscli/customizations/sessionmanager.py#L83\nhttps://stackoverflow.com/questions/57868722/unable-to-decode-aws-session-manager-websocket-output-in-python\nhttps://github.com/aws/session-manager-plugin/blob/mainline/src/sessionmanagerplugin/session/shellsession/shellsession.go\nLogger: https://stackoverflow.com/questions/384076/how-can-i-color-python-logging-output\nTextual for beginners: https://mathspp.com/blog/textual-for-beginners\nMore of textual: https://dev.to/wiseai/textual-the-definitive-guide-part-1-1i0p\n[Packaging projects](https://packaging.python.org/en/latest/tutorials/packaging-projects/)\n[Poetry](https://python-poetry.org/docs/)\nSome examples using boto3 SDK https://docs.aws.amazon.com/code-library/latest/ug/python_3_ec2_code_examples.html\nMocking: https://github.com/getmoto/moto\n\n# Tools\n\n1. EC2 SSM CONNECTION\n2. ECS SSM CONNECTION\n3. SSM GET PARAMETERS\n4. MYSQL IAM CONNECTION\n5. AWS RESOURCE BY TAG OUTPUT TABLE\n\n# Poetry commands\n\n```shell\npoetry add boto3 dacite\npoetry config pypi-token.pypi pypi-\npoetry publish --build\n```\n\n# Cloudsnake commands\n\n```shell\ncloudsnake --help\ncloudsnake ec2 describe-instances --filters \"Name=instance-state-name,Values=running\" --query 'Reservations[*].Instances[*].{Instance:InstanceId,VpcId:VpcId,AZ:Placement.AvailabilityZone,Name:Tags[?Key==`Name`]|[0].Value}' --output json\ncloudsnake ec2 describe-instances --filters \"Name=instance-state-name,Values=running\" --output json\n# Get instance name of running instances\ncloudsnake ec2 describe-instances --filters \"Name=instance-state-name,Values=running\" --query 'Reservations[*].Instances[*].{InstanceName:Tags[?Key==`Name`]|[0].Value}' --output json\n```\n\n## License\n\n`cloudsnake` is distributed under the terms of the [MIT](https://spdx.org/licenses/MIT.html) license.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "AWS cli operations with pretty TUI",
    "version": "0.2.2",
    "project_urls": {
        "Documentation": "https://github.com/containerscrew/cloudsnake#readme",
        "Homepage": "https://github.com/containerscrew/cloudsnake",
        "Repository": "https://github.com/containerscrew/cloudsnake"
    },
    "split_keywords": [
        "aws",
        " cli",
        " rich",
        " textual",
        " cloudsnake"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9008142af2743f5e326571a31ffff022122a790b649c94550f46a9cfc06dad37",
                "md5": "b047e2cd860268ef7d47351ce586f9ab",
                "sha256": "6f6721f34ab2c693d4884ba12393af81d567e1628815ce9547f90f1b037c5b44"
            },
            "downloads": -1,
            "filename": "cloudsnake-0.2.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "b047e2cd860268ef7d47351ce586f9ab",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.12",
            "size": 10631,
            "upload_time": "2024-05-29T21:49:52",
            "upload_time_iso_8601": "2024-05-29T21:49:52.492257Z",
            "url": "https://files.pythonhosted.org/packages/90/08/142af2743f5e326571a31ffff022122a790b649c94550f46a9cfc06dad37/cloudsnake-0.2.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a2704f6741df99b684992e8466b0dd85673bf573aad38a32bf676f811adb56a6",
                "md5": "bfe5b498ddbadd1ba443663c15683f68",
                "sha256": "94b2aa22de1d360ab7dc459ad0760e5badf0b58f4771bd7ac658ddf78e6adf9c"
            },
            "downloads": -1,
            "filename": "cloudsnake-0.2.2.tar.gz",
            "has_sig": false,
            "md5_digest": "bfe5b498ddbadd1ba443663c15683f68",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.12",
            "size": 9624,
            "upload_time": "2024-05-29T21:49:54",
            "upload_time_iso_8601": "2024-05-29T21:49:54.282826Z",
            "url": "https://files.pythonhosted.org/packages/a2/70/4f6741df99b684992e8466b0dd85673bf573aad38a32bf676f811adb56a6/cloudsnake-0.2.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-05-29 21:49:54",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "containerscrew",
    "github_project": "cloudsnake",
    "github_not_found": true,
    "lcname": "cloudsnake"
}
        
Elapsed time: 0.29644s