Douglas Schilling Landgraf has uploaded a new change for review. Change subject: logrotate: autoinstall options interval/max size ......................................................................
logrotate: autoinstall options interval/max size Provide auto-install options for logrotate interval and max size. oVirt Node users now are able to configure the logrotate interval and max size via auto-install option. The parameters can be used together or separated. If separated, default value for logrotate_max_size is 1024 and default value for logrotate_interval is daily. Change-Id: I7205019714cbe359834fe9ecf1d79513c5dbfd93 Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1153417 Signed-off-by: Douglas Schilling Landgraf <[email protected]> --- M scripts/ovirt-init-functions.sh.in M src/ovirt/node/config/defaults.py M src/ovirt/node/presets.py 3 files changed, 47 insertions(+), 6 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-node refs/changes/69/41369/1 diff --git a/scripts/ovirt-init-functions.sh.in b/scripts/ovirt-init-functions.sh.in index 3a185ec..9c27192 100644 --- a/scripts/ovirt-init-functions.sh.in +++ b/scripts/ovirt-init-functions.sh.in @@ -201,6 +201,29 @@ esac } +# Configure log rotate +configure_logrotate() { + if [[ -n "${logrotate_interval}" && -n "${logrotate_max_size}" ]] + then + python << EOP +from ovirt.node.config.defaults import Logrotate +Logrotate().update(max_size="${logrotate_max_size}", interval="${logrotate_interval}") +EOP + elif [ -n "${logrotate_interval}" ] + then + python << EOP +from ovirt.node.config.defaults import Logrotate +Logrotate().configure_interval(interval="${logrotate_interval}") +EOP + elif [ -n "${logrotate_max_size}" ] + then + python << EOP +from ovirt.node.config.defaults import Logrotate +Logrotate().configure_max_size(max_size="${logrotate_max_size}") +EOP +fi +} + start_ovirt_early () { { log "Starting ovirt-early" @@ -239,6 +262,7 @@ # disable_aes_ni=[y|n] # use_strong_rng=<bytes> # nfsv4_domain=domain + # logrotate_interval=weekly|daily|monthly # logrotate_max_size=number # reboot_delay=number @@ -419,6 +443,9 @@ # keyboard=layout # default keyboard layout keyboard_layout= + + #logrotate_interval=weekly|daily|monthly + logrotate_interval= #logrotate_max_size=number logrotate_max_size= @@ -784,6 +811,9 @@ keyboard*) keyboard_layout=${i#keyboard=} ;; + logrotate_interval=*) + logrotate_interval=${i#logrotate_interval=} + ;; logrotate_max_size=*) logrotate_max_size=${i#logrotate_max_size=} ;; @@ -828,6 +858,9 @@ esac done + # Check logrotate arguments + configure_logrotate + # Disable USB power-saving echo -1 > /sys/module/usbcore/parameters/autosuspend diff --git a/src/ovirt/node/config/defaults.py b/src/ovirt/node/config/defaults.py index c393b94..808959d 100755 --- a/src/ovirt/node/config/defaults.py +++ b/src/ovirt/node/config/defaults.py @@ -18,7 +18,7 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301, USA. A copy of the GNU General Public License is # also available at http://www.gnu.org/copyleft/gpl.html. -from ovirt.node import base, exceptions, valid, utils, config, log +from ovirt.node import base, exceptions, valid, utils, config, log, presets from ovirt.node.config.network import NicConfig from ovirt.node.exceptions import InvalidData from ovirt.node.utils import storage, process, fs, AugeasWrapper, console, \ @@ -1497,14 +1497,19 @@ @NodeConfigFileSection.map_and_update_defaults_decorator def update(self, max_size, interval): + if max_size is None: + max_size = presets.LOGROTATE_MAX_SIZE + valid.Number([0, None])(max_size) if interval not in ["daily", "weekly", "monthly", None]: raise InvalidData("Update interval must be a valid logrotate " "schedule period or None") + if interval is None: + interval = presets.LOGROTATE_INTERVAL + return {"OVIRT_LOGROTATE_MAX_SIZE": max_size, - "OVIRT_LOGROTATE_INTERVAL": "daily" if interval is None - else interval} + "OVIRT_LOGROTATE_INTERVAL": interval} def configure_interval(self, interval): self.update(None, interval) @@ -1514,8 +1519,8 @@ def transaction(self): cfg = dict(self.retrieve()) - max_size = cfg["max_size"] or 1024 - interval = cfg["interval"] or "daily" + max_size = cfg["max_size"] or presets.LOGROTATE_MAX_SIZE + interval = cfg["interval"] or presets.LOGROTATE_INTERVAL class CreateLogrotateConfig(utils.Transaction.Element): title = "Setting logrotate maximum logfile size" diff --git a/src/ovirt/node/presets.py b/src/ovirt/node/presets.py index c788577..d39730d 100644 --- a/src/ovirt/node/presets.py +++ b/src/ovirt/node/presets.py @@ -1,7 +1,7 @@ #!/usr/bin/python # -*- coding: utf-8 -*- # -# presets.py - Copyright (C) 2014 Red Hat, Inc. +# presets.py - Copyright (C) 2014-2015 Red Hat, Inc. # Written by Fabian Deutsch <[email protected]> # # This program is free software; you can redistribute it and/or modify @@ -27,3 +27,6 @@ ROOT_SIZE = 4096 TUI_BRAND_COLOR = "dark blue" + +LOGROTATE_MAX_SIZE = "1024" +LOGROTATE_INTERVAL = "daily" -- To view, visit https://gerrit.ovirt.org/41369 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I7205019714cbe359834fe9ecf1d79513c5dbfd93 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-node Gerrit-Branch: master Gerrit-Owner: Douglas Schilling Landgraf <[email protected]> _______________________________________________ node-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/node-patches
