Name | yesterdaypy JSON |
Version |
0.1.0
JSON |
| download |
home_page | None |
Summary | A Python software to backup Linode configuration to a local folder or Linode Object Storage |
upload_time | 2025-02-27 00:09:32 |
maintainer | None |
docs_url | None |
author | Leonardo Souza |
requires_python | >=3.9 |
license | MIT 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"
}