Compare commits

...

8 Commits

Author SHA1 Message Date
a8115cafd1 Bump version to 0.9.73 2023-09-02 02:16:19 -04:00
570da99605 Avoid failures if no children found 2023-09-02 01:36:17 -04:00
fdda47e8a2 Bump version to 0.9.72 2023-09-01 16:34:45 -04:00
a5ffe373cd Add default node values to commands 2023-09-01 16:33:26 -04:00
bb2aac145d Bump version to 0.9.71 2023-09-01 00:36:38 -04:00
a7c1b91f60 [Bookworm] Correct install of manage scripts 2023-09-01 00:36:24 -04:00
ec6d3351b2 [Bookworm] Correct Celery invocation 2023-09-01 00:30:01 -04:00
22faaa9bbc [Bookworm] Correct Flask DB migration process
Move the old manage script to _legacy, and add a new _flask version with
modern Flask tooling. Decide which one to call via pvc-api-db-migrate
using /etc/debian_version call.
2023-09-01 00:29:17 -04:00
13 changed files with 95 additions and 27 deletions

View File

@ -1 +1 @@
0.9.70
0.9.73

View File

@ -1,5 +1,17 @@
## PVC Changelog
###### [v0.9.73](https://github.com/parallelvirtualcluster/pvc/releases/tag/v0.9.73)
* [Node Daemon] Fixes a bug creating monitoring instance
###### [v0.9.72](https://github.com/parallelvirtualcluster/pvc/releases/tag/v0.9.72)
* [CLI] Restores old functionality for default node value
###### [v0.9.71](https://github.com/parallelvirtualcluster/pvc/releases/tag/v0.9.71)
* [API] Adds API support for Debian Bookworm
###### [v0.9.70](https://github.com/parallelvirtualcluster/pvc/releases/tag/v0.9.70)
* [Node Daemon] Fixes several compatibility issues for Debian 12 "Bookworm"

View File

@ -11,5 +11,16 @@ if [[ ! -f ${PVC_CONFIG_FILE} ]]; then
fi
pushd /usr/share/pvc
./pvcapid-manage.py db upgrade
case "$( cat /etc/debian_version )" in
10.*|11.*)
# Debian 10 & 11
./pvcapid-manage_legacy.py db upgrade
;;
*)
# Debian 12+
flask --app ./pvcapid-manage_flask.py db upgrade
;;
esac
popd

View File

@ -0,0 +1,29 @@
#!/usr/bin/env python3
# pvcapid-manage_flask.py - PVC Database management tasks (via Flask CLI)
# Part of the Parallel Virtual Cluster (PVC) system
#
# Copyright (C) 2018-2022 Joshua M. Boniface <joshua@boniface.me>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, version 3.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
###############################################################################
from pvcapid.flaskapi import app, db
from pvcapid.models import * # noqa F401,F403
from flask_migrate import Migrate
migrate = Migrate(app, db)
# Call flask --app /usr/share/pvc/pvcapid-manage_flask.py db upgrade

View File

@ -1,6 +1,6 @@
#!/usr/bin/env python3
# manage.py - PVC Database management tasks
# pvcapid-manage_legacy.py - PVC Database management tasks (Legacy)
# Part of the Parallel Virtual Cluster (PVC) system
#
# Copyright (C) 2018-2022 Joshua M. Boniface <joshua@boniface.me>

View File

@ -27,12 +27,8 @@ case "$( cat /etc/debian_version )" in
10.*)
CELERY_ARGS="worker --app pvcapid.flaskapi.celery --concurrency 1 --loglevel INFO"
;;
11.*)
CELERY_ARGS="--app pvcapid.flaskapi.celery worker --concurrency 1 --loglevel INFO"
;;
*)
echo "Invalid Debian version found!"
exit 1
CELERY_ARGS="--app pvcapid.flaskapi.celery worker --concurrency 1 --loglevel INFO"
;;
esac

View File

@ -27,7 +27,7 @@ from ssl import SSLContext, TLSVersion
from distutils.util import strtobool as dustrtobool
# Daemon version
version = "0.9.70"
version = "0.9.73"
# API version
API_VERSION = 1.0

View File

@ -569,7 +569,7 @@ def cli_node():
short_help="Set node as primary coordinator.",
)
@connection_req
@click.argument("node")
@click.argument("node", default=DEFAULT_NODE_HOSTNAME)
@click.option(
"-w",
"--wait",
@ -619,7 +619,7 @@ NOTE: There are currently {len(tasks_retdata)} active or queued provisioner task
short_help="Set node as secondary coordinator.",
)
@connection_req
@click.argument("node")
@click.argument("node", default=DEFAULT_NODE_HOSTNAME)
@click.option(
"-w",
"--wait",
@ -671,7 +671,7 @@ NOTE: There are currently {len(tasks_retdata)} active or queued provisioner task
short_help="Take node out of service.",
)
@connection_req
@click.argument("node")
@click.argument("node", default=DEFAULT_NODE_HOSTNAME)
@click.option(
"-w",
"--wait",
@ -709,7 +709,7 @@ def cli_node_flush(
short_help="Restore node to service.",
)
@connection_req
@click.argument("node")
@click.argument("node", default=DEFAULT_NODE_HOSTNAME)
@click.option(
"-w",
"--wait",
@ -747,7 +747,7 @@ def cli_node_ready(
short_help="View node daemon logs.",
)
@connection_req
@click.argument("node")
@click.argument("node", default=DEFAULT_NODE_HOSTNAME)
@click.option(
"-l",
"--lines",

View File

@ -2,7 +2,7 @@ from setuptools import setup
setup(
name="pvc",
version="0.9.70",
version="0.9.73",
packages=["pvc.cli", "pvc.lib"],
install_requires=[
"Click",

18
debian/changelog vendored
View File

@ -1,3 +1,21 @@
pvc (0.9.73-0) unstable; urgency=high
* [Node Daemon] Fixes a bug creating monitoring instance
-- Joshua M. Boniface <joshua@boniface.me> Sat, 02 Sep 2023 02:16:19 -0400
pvc (0.9.72-0) unstable; urgency=high
* [CLI] Restores old functionality for default node value
-- Joshua M. Boniface <joshua@boniface.me> Fri, 01 Sep 2023 16:34:45 -0400
pvc (0.9.71-0) unstable; urgency=high
* [API] Adds API support for Debian Bookworm
-- Joshua M. Boniface <joshua@boniface.me> Fri, 01 Sep 2023 00:30:42 -0400
pvc (0.9.70-0) unstable; urgency=high
* [Node Daemon] Fixes several compatibility issues for Debian 12 "Bookworm"

View File

@ -1,5 +1,5 @@
api-daemon/pvcapid.py usr/share/pvc
api-daemon/pvcapid-manage.py usr/share/pvc
api-daemon/pvcapid-manage*.py usr/share/pvc
api-daemon/pvc-api-db-upgrade usr/share/pvc
api-daemon/pvcapid.sample.yaml etc/pvc
api-daemon/pvcapid usr/share/pvc

View File

@ -49,7 +49,7 @@ import re
import json
# Daemon version
version = "0.9.70"
version = "0.9.73"
##########################################################

View File

@ -317,18 +317,20 @@ class MonitoringInstance(object):
return
# Clean up any old plugin data for which a plugin file no longer exists
for plugin_key in self.zkhandler.children(
plugins_data = self.zkhandler.children(
("node.monitoring.data", self.this_node.name)
):
if plugin_key not in self.all_plugin_names:
self.zkhandler.delete(
(
"node.monitoring.data",
self.this_node.name,
"monitoring_plugin",
plugin_key,
)
if plugins_data is not None:
for plugin_key in plugins_data:
if plugin_key not in self.all_plugin_names:
self.zkhandler.delete(
(
"node.monitoring.data",
self.this_node.name,
"monitoring_plugin",
plugin_key,
)
)
)
def run_plugin(self, plugin):
time_start = datetime.now()