From 4b3d62cb271e1a17e811e132a4d4829e3b1e7183 Mon Sep 17 00:00:00 2001 From: jblu Date: Fri, 28 Oct 2022 01:44:29 -0500 Subject: [PATCH] #4 updated to use a toml file --- .gitignore | 1 + config.toml.example | 20 ++++++++++++++++++++ crane.py | 40 +++++++++++++++++++++------------------- test_crane.py | 14 +++++++------- test_toml.py | 6 ++++++ 5 files changed, 55 insertions(+), 26 deletions(-) create mode 100644 config.toml.example create mode 100644 test_toml.py diff --git a/.gitignore b/.gitignore index da47f49..6e31d5d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ *.log *.json *.csv +*.toml # Byte-compiled / optimized / DLL files __pycache__/ diff --git a/config.toml.example b/config.toml.example new file mode 100644 index 0000000..40f1cda --- /dev/null +++ b/config.toml.example @@ -0,0 +1,20 @@ +[portainer] +host = "192.168.1.11" +port = 9443 +username = "a" +password = "a" +endpoint = 1 +start_containers = true + +[logging] +use_log = true +log_level = "DEBUG" +log_path = "./crn.log" + +[pushover] +use_pushover = false +po_key = "" +po_token = "" + +[containers] +qbit = "qbittorrent" \ No newline at end of file diff --git a/crane.py b/crane.py index e8e3fa4..9c7774c 100644 --- a/crane.py +++ b/crane.py @@ -1,5 +1,4 @@ import pushover -from json import load from cclient import * from clogging import * from cprocess import * @@ -7,36 +6,39 @@ import time import datetime import logging import requests +from tomllib import load class Crn: def __init__(self): """Main object, should be calling functions from qlist.py, qlogging.py and qprocess.py""" # Open the config. Needs a json file with the data in config.json.example self.st = datetime.datetime.now() - with open('./config.json') as c: + with open('./config.toml', 'rb') as c: self.config = load(c) - with open('./containers.json') as cts: - self.containers = load(cts) - self.observed_containers = self.containers.values() # Create the api object self.cc = requests # Create the logging and pushover objects self.tl = logging self.po = pushover - - # Init config.json - self.use_pushover = self.config["use_pushover"] - self.use_log = self.config["use_log"] - self.po_key = self.config["po_key"] - self.po_token = self.config["po_token"] - self.log_path = self.config["log_path"] - self.log_level = self.config["log_level"] - self.host = self.config["host"] - self.port = self.config["port"] - self.username = self.config["username"] - self.password = self.config["password"] - self.endpoint = self.config["endpoint"] - self.start_containers = self.config["start_containers"] + #Load settings from config.toml + #portainer + self.host = self.config["portainer"]["host"] + self.port = self.config["portainer"]["port"] + self.username = self.config["portainer"]["username"] + self.password = self.config["portainer"]["password"] + self.endpoint = self.config["portainer"]["endpoint"] + self.start_containers = self.config["portainer"]["start_containers"] + #logging + self.use_log = self.config["logging"]["use_log"] + self.log_path = self.config["logging"]["log_path"] + self.log_level = self.config["logging"]["log_level"] + #pushover + self.use_pushover = self.config["pushover"]["use_pushover"] + self.po_key = self.config["pushover"]["po_key"] + self.po_token = self.config["pushover"]["po_token"] + #containers + self.observed_containers = self.config["containers"].values() + cont_log(self) cont_notify(self) self.t = time diff --git a/test_crane.py b/test_crane.py index 92d539b..98ff825 100644 --- a/test_crane.py +++ b/test_crane.py @@ -1,19 +1,19 @@ import unittest import requests -from json import load +from tomllib import load from cclient import c_auth, c_get_containers, c_start_container, c_stop_container from cprocess import build_cont_list, process_cont_list, build_full_cont_list, process_cont_status unittest.TestLoader.sortTestMethodsUsing = None class TestCrane(unittest.TestCase): def setUp(self): - with open('./config.json') as c: + with open('./config.toml', 'rb') as c: self.config = load(c) - self.host = self.config["host"] - self.port = self.config["port"] - self.username = self.config["username"] - self.password = self.config["password"] - self.endpoint = self.config["endpoint"] + self.host = self.config["portainer"]["host"] + self.port = self.config["portainer"]["port"] + self.username = self.config["portainer"]["username"] + self.password = self.config["portainer"]["password"] + self.endpoint = self.config["portainer"]["endpoint"] self.cid = 'aa5b217ca6217fd9d268396039da69ea9e4a5aff381b3dceb71edb5a1f4d429d' self.req_obj = requests self.hypercare_containers = ['hello-world'] diff --git a/test_toml.py b/test_toml.py new file mode 100644 index 0000000..cd08b26 --- /dev/null +++ b/test_toml.py @@ -0,0 +1,6 @@ +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