No project description provided
Project description
patrolify
Do some checks every day, so that you can read the "news" in the morning while drinking coffee.
Install
How to write a check?
Define the "target" you want to check
from patrolify import Target
class IPTarget(Target):
def __init__(self, ip):
self.ip = ip
Define how to check that "target"
from patrolify import check
@check(IPTarget)
def check_ip(target):
return True, "it's ok"
A check function can:
- generates more targets: as long as the target can be checked by another checker;
- or return True/False to indicate the check was passed or not, plus a string indicate the extra information
Test Your Checker
In local environment, you can test your checker from __main__
. But you need
to fire local_test_setup()
first.
For example, you can write this in your checker.py
:
if __name__ == '__main__':
from patrolify.utils import local_test_setup
local_test_setup()
print(check_ip(IPTarget("127.0.0.1")))
How to deploy?
Reporter was written in pure Python, requirements:
- Python 3.11+
- Redis 5.0+
Installation(The name patrolify
was taken on Pypi):
pip install patrolify
Then you need to run 4 components after installation:
Component Name | What for? | Dependencies | Command example | Can deploy instances? |
---|---|---|---|---|
admin | A portal so that you can see the results | filesystem, Redis | patrolify --redis-url redis://127.0.0.1:6379 admin --port 8084 |
Yes, as long as the result directory exist. |
scheduler | Trigger the checker jobs | Redis | rqscheduler --host localhost --port 6379 --db 0 (it's redis' host and port ) |
Yes, supports auto fail over |
worker(for checker) | Get jobs from queue(Redis) and run it | Redis | patrolify --redis-url redis://127.0.0.1:6379 worker --queue=checker |
Yes, every worker will get jobs from queue and run it, more workers, more work load |
worker(for patrolify) | Get jobs from queue(Redis) and run it, only works for collecting the results | Redis | patrolify --redis-url redis://127.0.0.1:6379 worker --queue=patrolify |
Yes, same above. But it must be deployed onto the same server with admin |
- scheduler
- worker (2 types, for running checker jobs and patrolify jobs)
- admin
Architecture:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
patrolify-0.1.13.tar.gz
(1.2 MB
view details)
Built Distribution
File details
Details for the file patrolify-0.1.13.tar.gz
.
File metadata
- Download URL: patrolify-0.1.13.tar.gz
- Upload date:
- Size: 1.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.10.13 Linux/6.2.0-1019-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5b4a7aa769efff2d54cea69deadc8f36a13725694556f25bb80790a492394edf |
|
MD5 | b7f2817454a6e0fe446823c0f724b523 |
|
BLAKE2b-256 | 0741227f38c1c09d87db63a20525e9461bfe036960e3f6f6ad1c7db14d309fdf |
File details
Details for the file patrolify-0.1.13-py3-none-any.whl
.
File metadata
- Download URL: patrolify-0.1.13-py3-none-any.whl
- Upload date:
- Size: 1.2 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.10.13 Linux/6.2.0-1019-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5e51ed4abad2e3180e4960a6d5ff382bd44b8ff0c9a4abe4ca6be790a977c04f |
|
MD5 | 87fa18235ddbbb3575779a895fe2220f |
|
BLAKE2b-256 | 3c7a626fe5734673b55d6465af89566cd2c19a11da3f70fc9037fd3339836697 |