+++ /dev/null
-#!/usr/bin/python
-
-# kills aptitude processes that eat an excessive amount of resources
-
-# Copyright 2013 Peter Palfrader
-#
-# Permission is hereby granted, free of charge, to any person obtaining
-# a copy of this software and associated documentation files (the
-# "Software"), to deal in the Software without restriction, including
-# without limitation the rights to use, copy, modify, merge, publish,
-# distribute, sublicense, and/or sell copies of the Software, and to
-# permit persons to whom the Software is furnished to do so, subject to
-# the following conditions:
-#
-# The above copyright notice and this permission notice shall be
-# included in all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-import os
-import errno
-import sys
-try:
- import psutil
-except OSError, e:
- # XXX: This is a hack, but since we are run from cron, it's
- # better to handle this on the next run than to send mail.
- if e.errno == errno.ENOENT:
- sys.exit(0)
-
-total_mem = psutil.phymem_usage().total
-cutoff_time = 60*10
-
-for p in psutil.process_iter():
- try:
- if p.name != 'aptitude': continue
- parent = p.parent
- if parent is None: continue
- if parent.name != 'schroot': continue
- #
- try:
- rootdir = os.readlink('/proc/%d/root'%(p.pid,))
- except OSError as e:
- if e.errno == errno.ENOENT:
- continue
- else:
- raise e
- if not rootdir.startswith('/var/lib/schroot/mount'): continue
- #
- used = p.get_memory_info().vms
- if used < total_mem: continue
- #
- cputime = p.get_cpu_times().user
- if cputime < cutoff_time: continue
- #
- p.kill()
- except psutil.error.NoSuchProcess:
- pass
source => 'puppet:///modules/buildd/buildd.conf',
require => Package['buildd'],
}
- if ($::lsbmajdistrelease >= '8') {
- file { '/etc/sbuild/sbuild.conf':
- source => 'puppet:///modules/buildd/sbuild.conf',
- require => Package['sbuild'],
- }
- } else {
- file { '/etc/sbuild/sbuild.conf':
- source => 'puppet:///modules/buildd/sbuild.conf.wheezy',
- require => Package['sbuild'],
- }
+ file { '/etc/sbuild/sbuild.conf':
+ source => 'puppet:///modules/buildd/sbuild.conf',
+ require => Package['sbuild'],
}
include ferm::ftp_conntrack
}
package { 'python-psutil':
ensure => installed,
}
- if ($::lsbmajdistrelease >= '8') {
- file { '/usr/local/sbin/buildd-schroot-aptitude-kill':
- source => 'puppet:///modules/buildd/buildd-schroot-aptitude-kill',
- mode => '0555',
- }
- } else {
- file { '/usr/local/sbin/buildd-schroot-aptitude-kill':
- source => 'puppet:///modules/buildd/buildd-schroot-aptitude-kill.wheezy',
- mode => '0555',
- }
+ file { '/usr/local/sbin/buildd-schroot-aptitude-kill':
+ source => 'puppet:///modules/buildd/buildd-schroot-aptitude-kill',
+ mode => '0555',
}
} else {
file { '/usr/local/sbin/buildd-schroot-aptitude-kill':