yesterdaypy


Nameyesterdaypy JSON
Version 0.1.0 PyPI version JSON
download
home_pageNone
SummaryA Python software to backup Linode configuration to a local folder or Linode Object Storage
upload_time2025-02-27 00:09:32
maintainerNone
docs_urlNone
authorLeonardo Souza
requires_python>=3.9
licenseMIT License
keywords linode backup
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            What is YesterdayPy? - TLDR Version
-----------------------------------
| A Python software to backup Linode configuration to a local folder or Linode Object Storage.

What is YesterdayPy? - Longer Version
-------------------------------------
| Have you asked the question "How was this configured yesterday?" while working with Linode, or any of the variations with the same meaning?
| If yes, YesterdayPy will help you find the answer.
| If no, well, you are in the wrong corner of the Internet.
|
| Note: A project called yesterday was already in PyPI, so I just added Py in front of the name.
|
| YesterdayPy creates a backup of your Linode configuration.
| For each Linode product (Firewall for example), the software will create a JSON file for each object you have.
| The file will be named using the format **ID+date.json**, with ID being the object's ID (every Linode object has an ID), and date being the last update date.
| If the file already exists, no file is created. That means, it will only backup the changes since the last backup.
|
| If you want to know how the object was configured yesterday while troubleshooting a problem, you can then just compare the current version with the JSON file.

Technical Bits
--------------
| Requires Python version 3.9 or above.
| Requires **linode_api4** (https://github.com/linode/linode_api4-python).
| If used to backup configuration to Linode Object Storage, **Boto3** is also required (https://github.com/boto/boto3).
| Currently supports the following products Firewall, Linode, LKE, and VPC.

Installation
------------
| Use pipx (https://github.com/pypa/pipx) to install YesterdayPy.

.. code-block:: python

   pipx install yesterdaypy

| If you need Linode Object Storage to store the backup, install Boto3.

.. code-block:: python

   pipx inject yesterdaypy boto3

| You can also clone this repository and run:

.. code-block:: python

   python yesterdaypy/yesterdaypy.py

How to use it?
--------------
| First, you need to setup the necessary environment variables.
|
| Linode token is mandatory:

.. code-block:: python

   export LINODE_TOKEN=ABC

| If using Linode Object Storage:

.. code-block:: python

   export AWS_ACCESS_KEY_ID=ABC
   export AWS_SECRET_ACCESS_KEY=ABC
   export AWS_ENDPOINT_URL=ABC

| Run the software:

.. code-block:: python

   yesterdaypy

| It will backup all objects to the current directory, for all supported products, with a folder per product.

| To backup to a specific folder, specify the location.

.. code-block:: python

   yesterdaypy --storage /home/user/backup/example/

| To backup to Linode Object Storage, storage needs to start with **s3://** followed by the bucket name.

.. code-block:: python

   yesterdaypy --storage s3://bucket-name

| You can also use **--products** to limit the products you want to backup.
| Use **--errors** to get the list of errors.
| Lastly, **--help** for the help information.

To do
-----
* Debug
    Add debug options for troubleshooting.
* Verbose
    Add verbosity to make visible what the software is doing.
* Products
    Add more products.
* Thread
    Add threads for large configurations.

Other software ideas
--------------------
* YesterdayPy_Clone
    Clone an object with a new label (name).
* YesterdayPy_Restore
    Restore the object to the configuration of the JSON file.

Author
------

| Name:
| Leonardo Souza
| LinkedIn:
| https://uk.linkedin.com/in/leonardobdes

How to report bugs?
-------------------

| Use `GitHub <https://github.com/leonardobdes/yesterdaypy/issues>`_ issues to report bugs.

How to request new functionalities?
-----------------------------------

| Use `GitHub <https://github.com/leonardobdes/yesterdaypy/issues>`_ issues to request new functionalities.
| Use the following format in the title **RFE - Title**.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "yesterdaypy",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "linode, backup",
    "author": "Leonardo Souza",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/d5/74/4017798449d9ff72835220191ef6037a1e2bdaaf57a80b516eee5c253859/yesterdaypy-0.1.0.tar.gz",
    "platform": null,
    "description": "What is YesterdayPy? - TLDR Version\n-----------------------------------\n| A Python software to backup Linode configuration to a local folder or Linode Object Storage.\n\nWhat is YesterdayPy? - Longer Version\n-------------------------------------\n| Have you asked the question \"How was this configured yesterday?\" while working with Linode, or any of the variations with the same meaning?\n| If yes, YesterdayPy will help you find the answer.\n| If no, well, you are in the wrong corner of the Internet.\n|\n| Note: A project called yesterday was already in PyPI, so I just added Py in front of the name.\n|\n| YesterdayPy creates a backup of your Linode configuration.\n| For each Linode product (Firewall for example), the software will create a JSON file for each object you have.\n| The file will be named using the format **ID+date.json**, with ID being the object's ID (every Linode object has an ID), and date being the last update date.\n| If the file already exists, no file is created. That means, it will only backup the changes since the last backup.\n|\n| If you want to know how the object was configured yesterday while troubleshooting a problem, you can then just compare the current version with the JSON file.\n\nTechnical Bits\n--------------\n| Requires Python version 3.9 or above.\n| Requires **linode_api4** (https://github.com/linode/linode_api4-python).\n| If used to backup configuration to Linode Object Storage, **Boto3** is also required (https://github.com/boto/boto3).\n| Currently supports the following products Firewall, Linode, LKE, and VPC.\n\nInstallation\n------------\n| Use pipx (https://github.com/pypa/pipx) to install YesterdayPy.\n\n.. code-block:: python\n\n   pipx install yesterdaypy\n\n| If you need Linode Object Storage to store the backup, install Boto3.\n\n.. code-block:: python\n\n   pipx inject yesterdaypy boto3\n\n| You can also clone this repository and run:\n\n.. code-block:: python\n\n   python yesterdaypy/yesterdaypy.py\n\nHow to use it?\n--------------\n| First, you need to setup the necessary environment variables.\n|\n| Linode token is mandatory:\n\n.. code-block:: python\n\n   export LINODE_TOKEN=ABC\n\n| If using Linode Object Storage:\n\n.. code-block:: python\n\n   export AWS_ACCESS_KEY_ID=ABC\n   export AWS_SECRET_ACCESS_KEY=ABC\n   export AWS_ENDPOINT_URL=ABC\n\n| Run the software:\n\n.. code-block:: python\n\n   yesterdaypy\n\n| It will backup all objects to the current directory, for all supported products, with a folder per product.\n\n| To backup to a specific folder, specify the location.\n\n.. code-block:: python\n\n   yesterdaypy --storage /home/user/backup/example/\n\n| To backup to Linode Object Storage, storage needs to start with **s3://** followed by the bucket name.\n\n.. code-block:: python\n\n   yesterdaypy --storage s3://bucket-name\n\n| You can also use **--products** to limit the products you want to backup.\n| Use **--errors** to get the list of errors.\n| Lastly, **--help** for the help information.\n\nTo do\n-----\n* Debug\n    Add debug options for troubleshooting.\n* Verbose\n    Add verbosity to make visible what the software is doing.\n* Products\n    Add more products.\n* Thread\n    Add threads for large configurations.\n\nOther software ideas\n--------------------\n* YesterdayPy_Clone\n    Clone an object with a new label (name).\n* YesterdayPy_Restore\n    Restore the object to the configuration of the JSON file.\n\nAuthor\n------\n\n| Name:\n| Leonardo Souza\n| LinkedIn:\n| https://uk.linkedin.com/in/leonardobdes\n\nHow to report bugs?\n-------------------\n\n| Use `GitHub <https://github.com/leonardobdes/yesterdaypy/issues>`_ issues to report bugs.\n\nHow to request new functionalities?\n-----------------------------------\n\n| Use `GitHub <https://github.com/leonardobdes/yesterdaypy/issues>`_ issues to request new functionalities.\n| Use the following format in the title **RFE - Title**.\n",
    "bugtrack_url": null,
    "license": "MIT License",
    "summary": "A Python software to backup Linode configuration to a local folder or Linode Object Storage",
    "version": "0.1.0",
    "project_urls": {
        "Documentation": "https://github.com/leonardobdes/yesterdaypy",
        "Homepage": "https://github.com/leonardobdes/yesterdaypy",
        "Issues": "https://github.com/leonardobdes/yesterdaypy/issues",
        "Repository": "https://github.com/leonardobdes/yesterdaypy.git"
    },
    "split_keywords": [
        "linode",
        " backup"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1d86546f994e79ac106827ad825c83e689f47725f9bb87390975393957e897c2",
                "md5": "cea87bb8b7946c01ef0b15ac62f90476",
                "sha256": "e6301845d4acb14c454a405734d31a7fefdbd7c33ba6fd18815c75d676be8528"
            },
            "downloads": -1,
            "filename": "yesterdaypy-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "cea87bb8b7946c01ef0b15ac62f90476",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 6228,
            "upload_time": "2025-02-27T00:09:30",
            "upload_time_iso_8601": "2025-02-27T00:09:30.155517Z",
            "url": "https://files.pythonhosted.org/packages/1d/86/546f994e79ac106827ad825c83e689f47725f9bb87390975393957e897c2/yesterdaypy-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d5744017798449d9ff72835220191ef6037a1e2bdaaf57a80b516eee5c253859",
                "md5": "e11948be84526e64ce98eb3156d9fd70",
                "sha256": "aff38d448c50d05d9513143fc027c566f28b0389df066548ed7a340fd2780bd7"
            },
            "downloads": -1,
            "filename": "yesterdaypy-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "e11948be84526e64ce98eb3156d9fd70",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 5311,
            "upload_time": "2025-02-27T00:09:32",
            "upload_time_iso_8601": "2025-02-27T00:09:32.288362Z",
            "url": "https://files.pythonhosted.org/packages/d5/74/4017798449d9ff72835220191ef6037a1e2bdaaf57a80b516eee5c253859/yesterdaypy-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-02-27 00:09:32",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "leonardobdes",
    "github_project": "yesterdaypy",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "yesterdaypy"
}
        
Elapsed time: 1.85726s