Skip to content

Commit

Permalink
Resolved merge conflicts
Browse files Browse the repository at this point in the history
  • Loading branch information
sametd committed Jan 9, 2024
2 parents fe4e7bd + 444f78b commit fb9dfc5
Show file tree
Hide file tree
Showing 55 changed files with 547 additions and 460 deletions.
19 changes: 16 additions & 3 deletions .github/workflows/check.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ on:
workflow_dispatch:

push:
pull_request:
branches: [develop]

jobs:
Expand All @@ -23,8 +24,8 @@ jobs:
strategy:
fail-fast: false
matrix:
platform: ["ubuntu-latest"]
python-version: ["3.6", "3.7", "3.8", "3.9"]
platform: ["ubuntu-20.04","macos-13"]
python-version: ["3.6", "3.7", "3.8", "3.9", "3.10", "3.11"]

name: Python ${{ matrix.python-version }} on ${{ matrix.platform }}
runs-on: ${{ matrix.platform }}
Expand All @@ -36,14 +37,26 @@ jobs:
with:
python-version: ${{ matrix.python-version }}

- name: Install etcd
- name: Install etcd for linux
run: |
ETCD_VER=v3.4.14
DOWNLOAD_URL=https://github.com/etcd-io/etcd/releases/download
curl -L ${DOWNLOAD_URL}/${ETCD_VER}/etcd-${ETCD_VER}-linux-amd64.tar.gz -o /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz
mkdir /tmp/etcd-download-test
tar xzvf /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz -C /tmp/etcd-download-test --strip-components=1
/tmp/etcd-download-test/etcd &
if: runner.os == 'Linux'

- name: Install etcd for macos
run: |
ETCD_VER=v3.4.14
DOWNLOAD_URL=https://github.com/etcd-io/etcd/releases/download
curl -L ${DOWNLOAD_URL}/${ETCD_VER}/etcd-${ETCD_VER}-darwin-amd64.zip -o /tmp/etcd-${ETCD_VER}-darwin-amd64.zip
mkdir /tmp/etcd-download-test
unzip /tmp/etcd-${ETCD_VER}-darwin-amd64.zip -d /tmp
mv /tmp/etcd-${ETCD_VER}-darwin-amd64/* /tmp/etcd-download-test
/tmp/etcd-download-test/etcd &
if: runner.os == 'macOS'

- name: Install packages
run: |
Expand Down
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,7 @@ aviso-server/rest/aviso_rest.egg-info/*
aviso-server/auth/aviso_auth.egg-info/*
aviso-server/monitoring/aviso_monitoring.egg-info/*
docs/build/*
venv
.venv
build
default.etcd
2 changes: 1 addition & 1 deletion aviso-server/admin/aviso_admin/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
import logging

# version number for the application.
__version__ = "0.4.1"
__version__ = "0.5.0"

# setting application logger
logger = logging.getLogger("aviso-admin")
Expand Down
94 changes: 59 additions & 35 deletions aviso-server/admin/aviso_admin/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,53 +22,77 @@
from aviso_monitoring.udp_server import UdpServer


def main():
# load the configuration
config = Config()
logger.info(f"Running Aviso-admin v.{__version__}")
logger.info(f"aviso_monitoring module v.{monitoring_version}")
logger.info(f"Configuration loaded: {config}")

# instantiate the compactor and cleaner
def setup_compactor_and_cleaner(config):
"""Sets up the compactor and cleaner with scheduling."""
compactor = Compactor(config.compactor)
cleaner = Cleaner(config.cleaner)

# Every day at scheduled time run the compactor
if compactor.enabled:
schedule.every().day.at(config.compactor["scheduled_time"]).do(compactor.run)

# Every day at scheduled time run the cleaner
cleaner = Cleaner(config.cleaner)
if cleaner.enabled:
schedule.every().day.at(config.cleaner["scheduled_time"]).do(cleaner.run)

# create the UDP server
receiver = Receiver()
udp_server = UdpServer(config.monitoring.udp_server, receiver)
udp_server.start()

# schedule reporters
rest_reporter = AvisoRestReporter(config.monitoring, receiver)
if rest_reporter.enabled:
schedule.every(rest_reporter.frequency).minutes.do(rest_reporter.run)
auth_reporter = AvisoAuthReporter(config.monitoring, receiver)
if auth_reporter.enabled:
schedule.every(auth_reporter.frequency).minutes.do(auth_reporter.run)
etcd_reporter = EtcdReporter(config.monitoring, receiver)
if etcd_reporter.enabled:
schedule.every(etcd_reporter.frequency).minutes.do(etcd_reporter.run)

# launch the prometheus reporter, this expose some tlms to /metrics

def setup_udp_server(config, receiver):
"""Initializes and starts the UDP server."""
try:
udp_server = UdpServer(config.monitoring.udp_server, receiver)
udp_server.start()
return udp_server
except Exception as e:
logger.exception("Failed to start UDP Server: %s", e)


def schedule_reporters(config, receiver):
"""Schedules various reporters based on the configuration."""
for reporter_class in [AvisoRestReporter, AvisoAuthReporter, EtcdReporter]:
reporter = reporter_class(config.monitoring, receiver)
if reporter.enabled:
schedule.every(reporter.frequency).minutes.do(reporter.run)


def start_prometheus_reporter(config, receiver):
"""Starts the Prometheus reporter if enabled."""
prometheus_reporter = PrometheusReporter(config.monitoring, receiver)
if prometheus_reporter.enabled:
prometheus_reporter.start()

# Loop so that the scheduling task keeps on running all time.
while True:
# Checks whether a scheduled task is pending to run or not
schedule.run_pending()
time.sleep(30)

def main():
"""Main function to run the application."""
# Load the configuration
config = Config()
logger.info(f"Running Aviso-admin v.{__version__}")
logger.info(f"aviso_monitoring module v.{monitoring_version}")
logger.info(f"Configuration loaded: {config}")

# Set up compactor and cleaner
setup_compactor_and_cleaner(config)

# Create the UDP server
receiver = Receiver()
udp_server = setup_udp_server(config, receiver)

# Schedule reporters
schedule_reporters(config, receiver)

# Start Prometheus reporter
start_prometheus_reporter(config, receiver)

# Main loop for running scheduled tasks
try:
while True:
schedule.run_pending()
time.sleep(30)
except KeyboardInterrupt:
logger.info("Application stopped by user.")
except Exception as e:
logger.exception("Unexpected error occurred: %s", e)
finally:
if udp_server:
udp_server.stop() # Assuming a method to gracefully stop the UDP server
logger.info("Application shutdown.")


# when running directly from this file
if __name__ == "__main__":
main()
1 change: 0 additions & 1 deletion aviso-server/admin/aviso_admin/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,6 @@ def _read_env_variables(self):
return config

def logging_setup(self, logging_conf_path):

if logging_conf_path is not None:
try:
with open(logging_conf_path, "r") as f:
Expand Down
186 changes: 0 additions & 186 deletions aviso-server/admin/migration/etcd_migration.py

This file was deleted.

Loading

0 comments on commit fb9dfc5

Please sign in to comment.