#4 updated to use a toml file

This commit is contained in:
jblu 2022-10-28 01:44:29 -05:00
parent fa7f64a65b
commit 4b3d62cb27
5 changed files with 55 additions and 26 deletions

1
.gitignore vendored
View File

@ -1,6 +1,7 @@
*.log
*.json
*.csv
*.toml
# Byte-compiled / optimized / DLL files
__pycache__/

20
config.toml.example Normal file
View File

@ -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"

View File

@ -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

View File

@ -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']

6
test_toml.py Normal file
View File

@ -0,0 +1,6 @@
from tomllib import load
with open('./config.toml', mode="rb") as c:
config = load(c)
print(config["containers"].values())