forked from mirrors/thatmattlove-hyperglass
68 lines
2 KiB
Python
68 lines
2 KiB
Python
import os
|
|
import sys
|
|
import glob
|
|
import shutil
|
|
import requests
|
|
from logzero import logger
|
|
|
|
working_directory = os.path.dirname(os.path.abspath(__file__))
|
|
parent_directory = os.path.dirname(working_directory)
|
|
|
|
|
|
def ci_config():
|
|
"""Copies test configuration files to usable config files"""
|
|
logger.info("Migrating test config files...")
|
|
config_dir = os.path.join(parent_directory, "hyperglass/configuration/")
|
|
test_files = glob.iglob(os.path.join(working_directory, "*.toml"))
|
|
config_files = glob.iglob(os.path.join(config_dir, "*.toml"))
|
|
logger.debug(config_dir)
|
|
logger.debug(working_directory)
|
|
logger.debug(parent_directory)
|
|
status = False
|
|
for f in config_files:
|
|
if os.path.exists(f):
|
|
logger.debug(f"{f} already exists")
|
|
os.remove(f)
|
|
logger.debug(f"Deleted {f}")
|
|
for f in test_files:
|
|
try:
|
|
shutil.copy(f, config_dir)
|
|
logger.debug(f"Copied {f}")
|
|
logger.info("Successfully migrated test config files")
|
|
status = True
|
|
except:
|
|
logger.error(f"Failed to migrate {f}")
|
|
raise
|
|
return status
|
|
|
|
|
|
def construct_test(test_query, location, test_target):
|
|
"""Constructs JSON POST data for test_hyperglass function"""
|
|
constructed_query = json.dumps(
|
|
{"type": test_query, "location": location, "target": test_target}
|
|
)
|
|
return constructed_query
|
|
|
|
|
|
def flask_dev_server(host, port):
|
|
"""Starts Flask development server for testing without WSGI/Reverse Proxy"""
|
|
try:
|
|
sys.path.insert(0, parent_directory)
|
|
|
|
from hyperglass import hyperglass
|
|
from hyperglass import configuration
|
|
from hyperglass import render
|
|
|
|
render.css()
|
|
logger.info("Starting Flask development server")
|
|
hyperglass.app.run(host=host, debug=True, port=port)
|
|
except:
|
|
logger.error("Exception occurred while trying to start test server...")
|
|
raise
|
|
|
|
|
|
if __name__ == "__main__":
|
|
if ci_config():
|
|
flask_dev_server("localhost", 5000)
|
|
else:
|
|
raise
|