From df077256071ab40aed0b9e4e480e553d36a9246d Mon Sep 17 00:00:00 2001 From: Andrei Belov Date: Thu, 9 Jan 2025 12:33:40 +0400 Subject: [PATCH] Update agent version to 1.8.3 Changes: - amplify.agent.common.runner migrated to latest PEP 3143 implementation, - added support for packaging Ubuntu 24.04 "noble", - fixed package building for RHEL 9. --- README.md | 4 +-- amplify/agent/common/context.py | 2 +- amplify/agent/common/runner.py | 22 ++++++++---- packages/install.sh | 2 +- .../nginx-amplify-agent/deb/debian/changelog | 6 ++++ .../deb/debian/control.noble | 34 +++++++++++++++++++ .../requirements-rhel9.txt | 1 + .../requirements-ubuntu2404.txt | 4 +++ .../rpm/nginx-amplify-agent.spec | 4 +++ packages/nginx-amplify-agent/setup-py310.py | 2 +- packages/nginx-amplify-agent/setup-py39.py | 2 +- packages/nginx-amplify-agent/setup.py | 2 +- packages/version | 2 +- 13 files changed, 73 insertions(+), 14 deletions(-) create mode 100644 packages/nginx-amplify-agent/deb/debian/control.noble create mode 100644 packages/nginx-amplify-agent/requirements-ubuntu2404.txt diff --git a/README.md b/README.md index 72c8591..b1128e3 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,8 @@ The NGINX Amplify Agent is a Python application that provides system and NGINX metric collection. It is part of NGINX Amplify — a free configuration monitoring tool for NGINX. -Please check the list of the supported operating systems [here](https://docs.nginx.com/amplify/faq/nginx-amplify-agent/#what-operating-systems-are-supported). +Please check the list of the supported operating systems [here](https://docs.nginx.com/nginx-amplify/faq/nginx-amplify-agent/#what-operating-systems-are-supported). -This repository is not for installation purposes. To install the agent, please follow [this](https://docs.nginx.com/amplify/nginx-amplify-agent/install/installing-amplify-agent/) document. +This repository is not for installation purposes. To install the agent, please follow [this](https://docs.nginx.com/nginx-amplify/nginx-amplify-agent/install/installing-amplify-agent/) document. For more information about NGINX Amplify, please check the official documentation [here](https://docs.nginx.com/nginx-amplify/). diff --git a/amplify/agent/common/context.py b/amplify/agent/common/context.py index bf67a08..5bf5bc2 100644 --- a/amplify/agent/common/context.py +++ b/amplify/agent/common/context.py @@ -37,7 +37,7 @@ class Context(Singleton): # define vars self.cpu_last_check = 0 - self.version_semver = (1, 8, 2) + self.version_semver = (1, 8, 3) self.version_build = 1 self.uuid = None self.version = '%s-%s' % ('.'.join(map(str, self.version_semver)), self.version_build) diff --git a/amplify/agent/common/runner.py b/amplify/agent/common/runner.py index 3169bdb..d8007f3 100644 --- a/amplify/agent/common/runner.py +++ b/amplify/agent/common/runner.py @@ -1,32 +1,42 @@ # -*- coding: utf-8 -*- import signal -from daemon import runner +import daemon +from daemon.pidfile import PIDLockFile from amplify.agent.common.context import context __author__ = "Mike Belov" __copyright__ = "Copyright (C) Nginx, Inc. All rights reserved." __license__ = "" -__maintainer__ = "Mike Belov" -__email__ = "dedm@nginx.com" +__maintainer__ = "Andrei Belov" +__email__ = "a.belov@f5.com" -class Runner(runner.DaemonRunner): +class Runner: def __init__(self, app): - super(Runner, self).__init__(app) - def cleanup(signum, frame): app.stop() + self.daemon_context = daemon.DaemonContext() + self.app = app self.daemon_context.detach_process = True + self.daemon_context.pidfile = PIDLockFile('/var/run/amplify-agent/amplify-agent.pid') self.daemon_context.files_preserve = context.get_file_handlers() self.daemon_context.signal_map = { signal.SIGTERM: cleanup } + self._open_streams_from_app_stream_paths(app) def _open_streams_from_app_stream_paths(self, app): self.daemon_context.stdin = open(app.stdin_path, 'rt') self.daemon_context.stdout = open(app.stdout_path, 'w+t') self.daemon_context.stderr = open(app.stderr_path, 'w+t') + + def do_action(self): + """ + Stub function to mock old DaemonRunner behavior + """ + with self.daemon_context: + self.app.run() diff --git a/packages/install.sh b/packages/install.sh index a290870..67c3266 100755 --- a/packages/install.sh +++ b/packages/install.sh @@ -467,7 +467,7 @@ case "$os" in incr_step case "$codename" in - buster|bullseye|bookworm|bionic|focal|jammy) + buster|bullseye|bookworm|bionic|focal|jammy|noble) check_python 3 python_supported=3 ;; diff --git a/packages/nginx-amplify-agent/deb/debian/changelog b/packages/nginx-amplify-agent/deb/debian/changelog index a2faa49..e3e0043 100644 --- a/packages/nginx-amplify-agent/deb/debian/changelog +++ b/packages/nginx-amplify-agent/deb/debian/changelog @@ -1,3 +1,9 @@ +nginx-amplify-agent (1.8.3-1) stable; urgency=low + + * migrated to the most recent daemonizing logic (PEP 3143) + + -- Andrei Belov Wed, 8 Jan 2025 16:08:40 +0400 + nginx-amplify-agent (1.8.2-1) stable; urgency=low * pyMySQL updated to 1.1.1 diff --git a/packages/nginx-amplify-agent/deb/debian/control.noble b/packages/nginx-amplify-agent/deb/debian/control.noble new file mode 100644 index 0000000..e0559ff --- /dev/null +++ b/packages/nginx-amplify-agent/deb/debian/control.noble @@ -0,0 +1,34 @@ +Source: nginx-amplify-agent +Homepage: https://github.com/nginxinc/nginx-amplify-agent +Maintainer: NGINX Packaging +Section: python +Priority: optional +Build-Depends: debhelper (>= 13), + dpkg-dev (>= 1.22), + python3, + dh-python +Standards-Version: 4.5.0 + +Package: nginx-amplify-agent +Description: Agent for NGINX Amplify monitoring platform + The NGINX Amplify Agent is a small, Python application that provides + system and NGINX metric collection. It is part of NGINX Amplify - + the monitoring and configuration assistance service for NGINX. + . + This package installs and runs NGINX Amplify Agent daemon. + . + See http://nginx.com/amplify for more information +Architecture: any +Depends: ${misc:Depends}, + ${python3:Depends}, + python3-daemon, + python3-setproctitle, + python3-greenlet, + python3-gevent, + python3-requests, + python3-ujson, + python3-netifaces, + python3-pymysql, + python3-psutil, + lsb-release, + adduser diff --git a/packages/nginx-amplify-agent/requirements-rhel9.txt b/packages/nginx-amplify-agent/requirements-rhel9.txt index f4db2e7..2879924 100644 --- a/packages/nginx-amplify-agent/requirements-rhel9.txt +++ b/packages/nginx-amplify-agent/requirements-rhel9.txt @@ -7,3 +7,4 @@ rstr==3.0.0 python-daemon==2.2.4 ujson==5.4.0 PyMySQL==1.1.1 +setuptools<=70.3.0 diff --git a/packages/nginx-amplify-agent/requirements-ubuntu2404.txt b/packages/nginx-amplify-agent/requirements-ubuntu2404.txt new file mode 100644 index 0000000..acdbb51 --- /dev/null +++ b/packages/nginx-amplify-agent/requirements-ubuntu2404.txt @@ -0,0 +1,4 @@ +netaddr==0.8.0 +flup==1.0.3 +crossplane==0.5.8 +rstr==3.0.0 diff --git a/packages/nginx-amplify-agent/rpm/nginx-amplify-agent.spec b/packages/nginx-amplify-agent/rpm/nginx-amplify-agent.spec index 4515ada..74794cc 100644 --- a/packages/nginx-amplify-agent/rpm/nginx-amplify-agent.spec +++ b/packages/nginx-amplify-agent/rpm/nginx-amplify-agent.spec @@ -157,6 +157,10 @@ fi %changelog +* Wed Jan 8 2025 Andrei Belov 1.8.3-1 +- 1.8.3-1 +- migrated to the most recent daemonizing logic (PEP 3143) + * Mon May 27 2024 Andrei Belov 1.8.2-1 - 1.8.2-1 - pyMySQL updated to 1.1.1 diff --git a/packages/nginx-amplify-agent/setup-py310.py b/packages/nginx-amplify-agent/setup-py310.py index 2509a0e..d900f06 100644 --- a/packages/nginx-amplify-agent/setup-py310.py +++ b/packages/nginx-amplify-agent/setup-py310.py @@ -33,7 +33,7 @@ elif is_deb(): setup( name="nginx-amplify-agent", - version="1.8.2", + version="1.8.3", author="Mike Belov", author_email="dedm@nginx.com", description="NGINX Amplify Agent", diff --git a/packages/nginx-amplify-agent/setup-py39.py b/packages/nginx-amplify-agent/setup-py39.py index 2509a0e..d900f06 100644 --- a/packages/nginx-amplify-agent/setup-py39.py +++ b/packages/nginx-amplify-agent/setup-py39.py @@ -33,7 +33,7 @@ elif is_deb(): setup( name="nginx-amplify-agent", - version="1.8.2", + version="1.8.3", author="Mike Belov", author_email="dedm@nginx.com", description="NGINX Amplify Agent", diff --git a/packages/nginx-amplify-agent/setup.py b/packages/nginx-amplify-agent/setup.py index 0f8d08f..e83bd39 100644 --- a/packages/nginx-amplify-agent/setup.py +++ b/packages/nginx-amplify-agent/setup.py @@ -33,7 +33,7 @@ elif is_deb(): setup( name="nginx-amplify-agent", - version="1.8.2", + version="1.8.3", author="Mike Belov", author_email="dedm@nginx.com", description="NGINX Amplify Agent", diff --git a/packages/version b/packages/version index 80be405..8f3b86f 100644 --- a/packages/version +++ b/packages/version @@ -1 +1 @@ -1.8.2-1 +1.8.3-1