mirror of
https://github.com/house-of-vanity/OutFleet.git
synced 2025-07-06 17:14:07 +00:00
Outfleet::log fixing
This commit is contained in:
75
k8s.py
75
k8s.py
@ -10,50 +10,45 @@ import lib
|
|||||||
from kubernetes import client, config as kube_config
|
from kubernetes import client, config as kube_config
|
||||||
from kubernetes.client.rest import ApiException
|
from kubernetes.client.rest import ApiException
|
||||||
|
|
||||||
logging.basicConfig(
|
|
||||||
level=logging.INFO,
|
|
||||||
format="%(asctime)s - %(name)s - %(levelname)s - %(message)s",
|
|
||||||
datefmt="%d-%m-%Y %H:%M:%S",
|
|
||||||
)
|
|
||||||
|
|
||||||
log = logging.getLogger("OutFleet.k8s")
|
log = logging.getLogger("OutFleet.k8s")
|
||||||
file_handler = logging.FileHandler("sync.log")
|
|
||||||
file_handler.setLevel(logging.DEBUG)
|
NAMESPACE = False
|
||||||
formatter = logging.Formatter(
|
SERVERS = list()
|
||||||
"%(asctime)s - %(name)s - %(levelname)s - %(message)s"
|
CONFIG = None
|
||||||
)
|
V1 = None
|
||||||
file_handler.setFormatter(formatter)
|
K8S_DETECTED = False
|
||||||
log.addHandler(file_handler)
|
|
||||||
|
|
||||||
def discovery_servers():
|
def discovery_servers():
|
||||||
global CONFIG
|
global CONFIG
|
||||||
interval = 60
|
interval = 60
|
||||||
log = logging.getLogger("OutFleet.discovery")
|
log = logging.getLogger("OutFleet.discovery")
|
||||||
|
|
||||||
while True:
|
if K8S_DETECTED:
|
||||||
pods = V1.list_namespaced_pod(NAMESPACE, label_selector="app=shadowbox")
|
while True:
|
||||||
log.debug(f"Started discovery thread every {interval}")
|
pods = V1.list_namespaced_pod(NAMESPACE, label_selector="app=shadowbox")
|
||||||
for pod in pods.items:
|
log.debug(f"Started discovery thread every {interval}")
|
||||||
log.debug(f"Found Outline server pod {pod.metadata.name}")
|
for pod in pods.items:
|
||||||
container_log = V1.read_namespaced_pod_log(name=pod.metadata.name, namespace=NAMESPACE, container='manager-config-json')
|
log.debug(f"Found Outline server pod {pod.metadata.name}")
|
||||||
secret = json.loads(container_log.replace('\'', '\"'))
|
container_log = V1.read_namespaced_pod_log(name=pod.metadata.name, namespace=NAMESPACE, container='manager-config-json')
|
||||||
config = lib.get_config()
|
secret = json.loads(container_log.replace('\'', '\"'))
|
||||||
config_servers = find_server(secret, config["servers"])
|
config = lib.get_config()
|
||||||
#log.info(f"config_servers {config_servers}")
|
config_servers = find_server(secret, config["servers"])
|
||||||
if len(config_servers) > 0:
|
#log.info(f"config_servers {config_servers}")
|
||||||
log.debug(f"Already exist")
|
if len(config_servers) > 0:
|
||||||
pass
|
log.debug(f"Already exist")
|
||||||
else:
|
pass
|
||||||
with lib.lock:
|
else:
|
||||||
config["servers"][str(uuid.uuid4())] = {
|
with lib.lock:
|
||||||
"cert": secret["certSha256"],
|
config["servers"][str(uuid.uuid4())] = {
|
||||||
"name": f"{pod.metadata.name}",
|
"cert": secret["certSha256"],
|
||||||
"comment": f"{pod.spec.node_name}",
|
"name": f"{pod.metadata.name}",
|
||||||
"url": secret["apiUrl"],
|
"comment": f"{pod.spec.node_name}",
|
||||||
}
|
"url": secret["apiUrl"],
|
||||||
write_config(config)
|
}
|
||||||
log.info(f"Added discovered server")
|
write_config(config)
|
||||||
time.sleep(interval)
|
log.info(f"Added discovered server")
|
||||||
|
time.sleep(interval)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -93,10 +88,6 @@ def write_config(config):
|
|||||||
)
|
)
|
||||||
log.info("Updated config in Kubernetes ConfigMap [config-outfleet]")
|
log.info("Updated config in Kubernetes ConfigMap [config-outfleet]")
|
||||||
|
|
||||||
NAMESPACE = False
|
|
||||||
SERVERS = list()
|
|
||||||
CONFIG = None
|
|
||||||
V1 = None
|
|
||||||
|
|
||||||
def reload_config():
|
def reload_config():
|
||||||
global CONFIG
|
global CONFIG
|
||||||
@ -110,6 +101,8 @@ def reload_config():
|
|||||||
try:
|
try:
|
||||||
kube_config.load_incluster_config()
|
kube_config.load_incluster_config()
|
||||||
V1 = client.CoreV1Api()
|
V1 = client.CoreV1Api()
|
||||||
|
if V1 != None:
|
||||||
|
K8S_DETECTED = True
|
||||||
try:
|
try:
|
||||||
with open("/var/run/secrets/kubernetes.io/serviceaccount/namespace") as f:
|
with open("/var/run/secrets/kubernetes.io/serviceaccount/namespace") as f:
|
||||||
NAMESPACE = f.read().strip()
|
NAMESPACE = f.read().strip()
|
||||||
|
27
lib.py
27
lib.py
@ -99,13 +99,13 @@ class Server:
|
|||||||
"keys": self.client.get_keys(),
|
"keys": self.client.get_keys(),
|
||||||
}
|
}
|
||||||
self.log = logging.getLogger(f'OutFleet.server[{self.data["name"]}]')
|
self.log = logging.getLogger(f'OutFleet.server[{self.data["name"]}]')
|
||||||
file_handler = logging.FileHandler("sync.log")
|
# file_handler = logging.FileHandler("sync.log")
|
||||||
file_handler.setLevel(logging.DEBUG)
|
# file_handler.setLevel(logging.DEBUG)
|
||||||
formatter = logging.Formatter(
|
# formatter = logging.Formatter(
|
||||||
"%(asctime)s - %(name)s - %(levelname)s - %(message)s"
|
# "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
|
||||||
)
|
# )
|
||||||
file_handler.setFormatter(formatter)
|
# file_handler.setFormatter(formatter)
|
||||||
self.log.addHandler(file_handler)
|
# self.log.addHandler(file_handler)
|
||||||
|
|
||||||
def info(self) -> ServerDict:
|
def info(self) -> ServerDict:
|
||||||
return self.data
|
return self.data
|
||||||
@ -114,9 +114,20 @@ class Server:
|
|||||||
# Looking for any users with provided name. len(result) != 1 is a problem.
|
# Looking for any users with provided name. len(result) != 1 is a problem.
|
||||||
result = []
|
result = []
|
||||||
for key in self.client.get_keys():
|
for key in self.client.get_keys():
|
||||||
if key.key_id == name:
|
if key.name == name:
|
||||||
|
# self.log.info("NEW RUN")
|
||||||
result.append(name)
|
result.append(name)
|
||||||
self.log.info(f"check_client found client `{name}` config is correct.")
|
self.log.info(f"check_client found client `{name}` config is correct.")
|
||||||
|
# self.log.info("self.client:")
|
||||||
|
# self.log.info(self.client)
|
||||||
|
# self.log.info("key.key_id:")
|
||||||
|
# self.log.info(key.key_id)
|
||||||
|
# self.log.info("key:")
|
||||||
|
# self.log.info(key)
|
||||||
|
# self.log.info("result:")
|
||||||
|
# self.log.info(result)
|
||||||
|
# self.log.info("self.client.get_keys():")
|
||||||
|
# self.log.info(self.client.get_keys())
|
||||||
if len(result) != 1:
|
if len(result) != 1:
|
||||||
self.log.warning(
|
self.log.warning(
|
||||||
f"check_client found client `{name}` inconsistent. Found {len(result)} keys."
|
f"check_client found client `{name}` inconsistent. Found {len(result)} keys."
|
||||||
|
10
main.py
10
main.py
@ -24,9 +24,7 @@ logging.basicConfig(
|
|||||||
)
|
)
|
||||||
|
|
||||||
log = logging.getLogger("OutFleet")
|
log = logging.getLogger("OutFleet")
|
||||||
log.setLevel(logging.INFO)
|
|
||||||
file_handler = logging.FileHandler("sync.log")
|
file_handler = logging.FileHandler("sync.log")
|
||||||
file_handler.setLevel(logging.DEBUG)
|
|
||||||
formatter = logging.Formatter(
|
formatter = logging.Formatter(
|
||||||
"%(asctime)s - %(name)s - %(levelname)s - %(message)s"
|
"%(asctime)s - %(name)s - %(levelname)s - %(message)s"
|
||||||
)
|
)
|
||||||
@ -363,14 +361,6 @@ def sync():
|
|||||||
lines=lines,
|
lines=lines,
|
||||||
)
|
)
|
||||||
if request.method == "POST":
|
if request.method == "POST":
|
||||||
log = logging.getLogger("sync")
|
|
||||||
file_handler = logging.FileHandler("sync.log")
|
|
||||||
file_handler.setLevel(logging.DEBUG)
|
|
||||||
formatter = logging.Formatter(
|
|
||||||
"%(asctime)s - %(name)s - %(levelname)s - %(message)s"
|
|
||||||
)
|
|
||||||
file_handler.setFormatter(formatter)
|
|
||||||
log.addHandler(file_handler)
|
|
||||||
with lock:
|
with lock:
|
||||||
if request.form.get("wipe") == 'all':
|
if request.form.get("wipe") == 'all':
|
||||||
for server in SERVERS:
|
for server in SERVERS:
|
||||||
|
Reference in New Issue
Block a user