working on process checking

This commit is contained in:
Mike Young
2019-12-27 12:33:15 -05:00
parent 39f59aa689
commit 1e33d5f533
3 changed files with 28 additions and 5 deletions

2
config.json vendored
View File

@@ -1 +1 @@
{"TITLE": "pyShelf E-Book Server", "VERSION": "0.3.0", "BOOKPATH": "~/Books", "DB_HOST": "localhost", "DB_PORT": "5432", "DATABASE": "pyshelf", "USER": "pyshelf", "PASSWORD": "pyshelf", "BOOKSHELF": "data/shelf.json", "ALLOWED_HOSTS": "*"} {"TITLE": "pyShelf E-Book Server", "VERSION": "0.3.0", "BOOKPATH": "/home/raelon/Books", "DB_HOST": "localhost", "DB_PORT": "5432", "DATABASE": "pyshelf", "USER": "pyshelf", "PASSWORD": "pyshelf", "BOOKSHELF": "data/shelf.json", "ALLOWED_HOSTS": "*"}

30
install vendored
View File

@@ -1,7 +1,9 @@
#!/usr/bin/python3.8 #!/usr/bin/python3.8
import json import json
import pathlib import pathlib
import os import platform
import psutil
from src.backend.lib.display import TerminalDisplay from src.backend.lib.display import TerminalDisplay
@@ -9,18 +11,18 @@ class Configuration:
def __init__(self): def __init__(self):
self._cp = pathlib.Path("config.json") self._cp = pathlib.Path("config.json")
self._data = self.open_file() self._data = self.open_file()
self.system = os.sys.environ self.system = platform.system()
def open_file(self): def open_file(self):
""" """
Try to open and then backup the configuration file. Try to open and then backup the configuration file.
Fail and return false if initial configuration is not found. Fail and return false if initial configuration is not found.
# TODO: More specific error handling # TODO: More specific error handling
""" """
try: try:
with open(str(self._cp), "r") as read_file: with open(str(self._cp), "r") as read_file:
data = json.load(read_file) data = json.load(read_file)
with open('config.backup.json', 'w') as backup_file: with open("config.backup.json", "w") as backup_file:
json.dump(data, backup_file) json.dump(data, backup_file)
return data return data
except Exception as e: except Exception as e:
@@ -36,9 +38,29 @@ class Configuration:
return True return True
class RequiredServices:
@staticmethod
def check_ps(service_list):
breakpoint()
ps = psutil
passed = []
for p in ps.process_iter(attrs=["name", "exe", "cmdline"]):
for s in service_list:
if s == p.name:
passed.append(s)
return
if len(passed) == len(service_list):
return True
else:
return failed
config = Configuration().open_file() config = Configuration().open_file()
install_answers = TerminalDisplay().installer() install_answers = TerminalDisplay().installer()
for key in install_answers: for key in install_answers:
config[key["name"]] = key["answer"] config[key["name"]] = key["answer"]
Configuration().write_file(config) Configuration().write_file(config)
# Start checking for our list of required services
service_list = ["postgresql", "nginx", "httpd"]
req = RequiredServices.check_ps(service_list)

1
requirements.txt vendored
View File

@@ -16,3 +16,4 @@ uwsgi
django-debug-toolbar django-debug-toolbar
psycopg2-binary psycopg2-binary
prompt_toolkit prompt_toolkit
psutil