aboutsummaryrefslogtreecommitdiffstats
path: root/lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/status/web/slaves.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/status/web/slaves.py')
-rw-r--r--lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/status/web/slaves.py203
1 files changed, 0 insertions, 203 deletions
diff --git a/lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/status/web/slaves.py b/lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/status/web/slaves.py
deleted file mode 100644
index 323b5463..00000000
--- a/lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/status/web/slaves.py
+++ /dev/null
@@ -1,203 +0,0 @@
-# This file is part of Buildbot. Buildbot 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 2.
-#
-# 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, write to the Free Software Foundation, Inc., 51
-# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Copyright Buildbot Team Members
-
-
-import time, urllib
-from twisted.web import html
-from twisted.web.util import Redirect
-from twisted.web.resource import NoResource
-from twisted.internet import defer
-
-from buildbot.status.web.base import HtmlResource, abbreviate_age, \
- BuildLineMixin, ActionResource, path_to_slave, path_to_authzfail
-from buildbot import util
-
-class ShutdownActionResource(ActionResource):
-
- def __init__(self, slave):
- self.slave = slave
- self.action = "gracefulShutdown"
-
- @defer.inlineCallbacks
- def performAction(self, request):
- res = yield self.getAuthz(request).actionAllowed(self.action,
- request,
- self.slave)
-
- url = None
- if res:
- self.slave.setGraceful(True)
- url = path_to_slave(request, self.slave)
- else:
- url = path_to_authzfail(request)
- defer.returnValue(url)
-
-class PauseActionResource(ActionResource):
-
- def __init__(self, slave, state):
- self.slave = slave
- self.action = "pauseSlave"
- self.state = state
-
- @defer.inlineCallbacks
- def performAction(self, request):
- res = yield self.getAuthz(request).actionAllowed(self.action,
- request,
- self.slave)
-
- url = None
- if res:
- self.slave.setPaused(self.state)
- url = path_to_slave(request, self.slave)
- else:
- url = path_to_authzfail(request)
- defer.returnValue(url)
-
-# /buildslaves/$slavename
-class OneBuildSlaveResource(HtmlResource, BuildLineMixin):
- addSlash = False
- def __init__(self, slavename):
- HtmlResource.__init__(self)
- self.slavename = slavename
-
- def getPageTitle(self, req):
- return "Buildbot: %s" % self.slavename
-
- def getChild(self, path, req):
- s = self.getStatus(req)
- slave = s.getSlave(self.slavename)
- if path == "shutdown":
- return ShutdownActionResource(slave)
- if path == "pause" or path == "unpause":
- return PauseActionResource(slave, path == "pause")
- return Redirect(path_to_slave(req, slave))
-
- def content(self, request, ctx):
- s = self.getStatus(request)
- slave = s.getSlave(self.slavename)
-
- my_builders = []
- for bname in s.getBuilderNames():
- b = s.getBuilder(bname)
- for bs in b.getSlaves():
- if bs.getName() == self.slavename:
- my_builders.append(b)
-
- # Current builds
- current_builds = []
- for b in my_builders:
- for cb in b.getCurrentBuilds():
- if cb.getSlavename() == self.slavename:
- current_builds.append(self.get_line_values(request, cb))
-
- try:
- max_builds = int(request.args.get('numbuilds')[0])
- except:
- max_builds = 10
-
- recent_builds = []
- n = 0
- for rb in s.generateFinishedBuilds(builders=[b.getName() for b in my_builders]):
- if rb.getSlavename() == self.slavename:
- n += 1
- recent_builds.append(self.get_line_values(request, rb))
- if n > max_builds:
- break
-
- # connects over the last hour
- slave = s.getSlave(self.slavename)
- connect_count = slave.getConnectCount()
-
- if slave.isPaused():
- pause_url = request.childLink("unpause")
- else:
- pause_url = request.childLink("pause")
-
- ctx.update(dict(slave=slave,
- slavename = self.slavename,
- current = current_builds,
- recent = recent_builds,
- shutdown_url = request.childLink("shutdown"),
- pause_url = pause_url,
- authz = self.getAuthz(request),
- this_url = "../../../" + path_to_slave(request, slave),
- access_uri = slave.getAccessURI()),
- admin = unicode(slave.getAdmin() or '', 'utf-8'),
- host = unicode(slave.getHost() or '', 'utf-8'),
- slave_version = slave.getVersion(),
- show_builder_column = True,
- connect_count = connect_count)
- template = request.site.buildbot_service.templates.get_template("buildslave.html")
- data = template.render(**ctx)
- return data
-
-# /buildslaves
-class BuildSlavesResource(HtmlResource):
- pageTitle = "BuildSlaves"
- addSlash = True
-
- def content(self, request, ctx):
- s = self.getStatus(request)
-
- #?no_builders=1 disables build column
- show_builder_column = not (request.args.get('no_builders', '0')[0])=='1'
- ctx['show_builder_column'] = show_builder_column
-
- used_by_builder = {}
- for bname in s.getBuilderNames():
- b = s.getBuilder(bname)
- for bs in b.getSlaves():
- slavename = bs.getName()
- if slavename not in used_by_builder:
- used_by_builder[slavename] = []
- used_by_builder[slavename].append(bname)
-
- slaves = ctx['slaves'] = []
- for name in util.naturalSort(s.getSlaveNames()):
- info = {}
- slaves.append(info)
- slave = s.getSlave(name)
- slave_status = s.botmaster.slaves[name].slave_status
- info['running_builds'] = len(slave_status.getRunningBuilds())
- info['link'] = request.childLink(urllib.quote(name,''))
- info['name'] = name
-
- if show_builder_column:
- info['builders'] = []
- for b in used_by_builder.get(name, []):
- info['builders'].append(dict(link=request.childLink("../builders/%s" % b), name=b))
-
- info['version'] = slave.getVersion()
- info['connected'] = slave.isConnected()
- info['connectCount'] = slave.getConnectCount()
- info['paused'] = slave.isPaused()
-
- info['admin'] = unicode(slave.getAdmin() or '', 'utf-8')
- last = slave.lastMessageReceived()
- if last:
- info['last_heard_from_age'] = abbreviate_age(time.time() - last)
- info['last_heard_from_time'] = time.strftime("%Y-%b-%d %H:%M:%S",
- time.localtime(last))
-
- template = request.site.buildbot_service.templates.get_template("buildslaves.html")
- data = template.render(**ctx)
- return data
-
- def getChild(self, path, req):
- try:
- self.getStatus(req).getSlave(path)
- return OneBuildSlaveResource(path)
- except KeyError:
- return NoResource("No such slave '%s'" % html.escape(path))