diff --git a/.drone.yml b/.drone.yml index fe15c96..87d4e72 100644 --- a/.drone.yml +++ b/.drone.yml @@ -15,4 +15,18 @@ steps: - latest when: branch: - - main \ No newline at end of file + - main +- name: docker-test + image: plugins/docker + settings: + registry: git.jbranan.com + dry_run: false + username: jblu + password: + from_secret: gittea_drone + repo: git.jbranan.com/jblu/crane + tags: + - dev + when: + branch: + - dev* \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 1464315..38a1694 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ FROM python:alpine3.18 WORKDIR / COPY . opt +RUN apk add --no-cache supercronic RUN pip install requests -RUN crontab /opt/crontab RUN chmod +x /opt/entrypoint.sh CMD ["/opt/entrypoint.sh"] \ No newline at end of file diff --git a/cclient.py b/cclient.py index 3036b7d..a25ee5d 100644 --- a/cclient.py +++ b/cclient.py @@ -5,7 +5,6 @@ def c_get_containers(req_obj, host, port, access_token, endpoint): def c_get_filtered_containers(req_obj, j_obj, host, port, access_token, endpoint, containers, statuses): filter_string = j_obj.dumps({"name":containers,"status":statuses}) - # url = 'https://192.168.4.11:9443/api/endpoints/1/docker/containers/json?filters={"name": ["restic","qbittorrent"],"status": ["paused","dead","created","exited","removing","restarting","created"]}' url = f'https://{host}:{port}/api/endpoints/{endpoint}/docker/containers/json?filters={filter_string}' c_get_containers_response = req_obj.get(url, headers={"X-API-Key": access_token}, verify=False) return c_get_containers_response.json() diff --git a/crontab b/crontab deleted file mode 100644 index 257e14f..0000000 --- a/crontab +++ /dev/null @@ -1 +0,0 @@ -*/5 * * * * . /etc/environment; python /opt/crane.py >> /logfile \ No newline at end of file diff --git a/entrypoint.sh b/entrypoint.sh index ca10c91..4f59928 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -1,5 +1,7 @@ #!/bin/sh -printenv | grep -v "no_proxy" >> /etc/environment +CRON_CONFIG_FILE="/opt/crontab" -crond -f \ No newline at end of file +echo "${CRON} python /opt/crane.py" > $CRON_CONFIG_FILE + +exec supercronic -passthrough-logs -quiet $CRON_CONFIG_FILE \ No newline at end of file diff --git a/test_crane.py b/test_crane.py index 823a760..63d10ec 100644 --- a/test_crane.py +++ b/test_crane.py @@ -2,7 +2,7 @@ import unittest import requests import json from tomllib import load -from cclient import c_get_filtered_containers, c_start_container, c_stop_container, c_get_filtered_containers +from cclient import c_get_filtered_containers, c_start_container, c_stop_container from cprocess import process_cont_list # unittest.TestLoader.sortTestMethodsUsing = None @@ -17,7 +17,7 @@ class TestCrane(unittest.TestCase): self.cid = 'ef8fee86e02b2b82acbddf6f0da1ff023f60bfe52c0b4087cac29c1686ccbac4' self.req_obj = requests self.j_obj = json - self.hypercare_containers = ['restic','qbittorrent'] + self.hypercare_containers = ['hello-world'] self.status_filters = ["paused","dead","created","exited","removing","restarting","created"] self.cont_obj = c_get_filtered_containers(self.req_obj,self.j_obj, self.host, self.port, self.access_token, self.endpoint,self.hypercare_containers,self.status_filters) diff --git a/test_pushover.py b/test_pushover.py deleted file mode 100644 index dc1f72f..0000000 --- a/test_pushover.py +++ /dev/null @@ -1,12 +0,0 @@ -import pushover -from tomllib import load - -with open('./config.toml', mode="rb") as c: - config = load(c) - -po_key = config["pushover"]["po_key"] -po_token = config["pushover"]["po_token"] - -message = "hello" - -# pushover.Pushover(po_token).message(po_key, message, title="--- crane summary ---") \ No newline at end of file diff --git a/test_toml.py b/test_toml.py deleted file mode 100644 index cd08b26..0000000 --- a/test_toml.py +++ /dev/null @@ -1,6 +0,0 @@ -from tomllib import load - -with open('./config.toml', mode="rb") as c: - config = load(c) - -print(config["containers"].values()) \ No newline at end of file