aboutsummaryrefslogtreecommitdiffstats
path: root/lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/steps/slave.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/steps/slave.py')
-rw-r--r--lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/steps/slave.py270
1 files changed, 0 insertions, 270 deletions
diff --git a/lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/steps/slave.py b/lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/steps/slave.py
deleted file mode 100644
index 3b5a20f6..00000000
--- a/lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/steps/slave.py
+++ /dev/null
@@ -1,270 +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 stat
-from twisted.internet import defer
-from buildbot.process import buildstep
-from buildbot.status.results import SUCCESS, FAILURE
-from buildbot.interfaces import BuildSlaveTooOldError
-
-class SlaveBuildStep(buildstep.BuildStep):
- def describe(self, done=False):
- return self.descriptionDone if done else self.description
-
-class SetPropertiesFromEnv(SlaveBuildStep):
- """
- Sets properties from envirionment variables on the slave.
-
- Note this is transfered when the slave first connects
- """
- name='SetPropertiesFromEnv'
- description=['Setting']
- descriptionDone=['Set']
-
- def __init__(self, variables, source="SlaveEnvironment", **kwargs):
- buildstep.BuildStep.__init__(self, **kwargs)
- self.variables = variables
- self.source = source
-
- def start(self):
- # on Windows, environment variables are case-insensitive, but we have
- # a case-sensitive dictionary in slave_environ. Fortunately, that
- # dictionary is also folded to uppercase, so we can simply fold the
- # variable names to uppercase to duplicate the case-insensitivity.
- fold_to_uppercase = (self.buildslave.slave_system == 'win32')
-
- properties = self.build.getProperties()
- environ = self.buildslave.slave_environ
- variables = self.variables
- log = []
- if isinstance(variables, str):
- variables = [self.variables]
- for variable in variables:
- key = variable
- if fold_to_uppercase:
- key = variable.upper()
- value = environ.get(key, None)
- if value:
- # note that the property is not uppercased
- properties.setProperty(variable, value, self.source,
- runtime=True)
- log.append("%s = %r" % (variable, value))
- self.addCompleteLog("properties", "\n".join(log))
- self.step_status.setText(self.describe(done=True))
- self.finished(SUCCESS)
-
-class FileExists(SlaveBuildStep):
- """
- Check for the existence of a file on the slave.
- """
- name='FileExists'
- description='Checking'
- descriptionDone='Checked'
-
- renderables = [ 'file' ]
-
- haltOnFailure = True
- flunkOnFailure = True
-
-
- def __init__(self, file, **kwargs):
- buildstep.BuildStep.__init__(self, **kwargs)
- self.file = file
-
- def start(self):
- slavever = self.slaveVersion('stat')
- if not slavever:
- raise BuildSlaveTooOldError("slave is too old, does not know "
- "about stat")
- cmd = buildstep.RemoteCommand('stat', {'file': self.file })
- d = self.runCommand(cmd)
- d.addCallback(lambda res: self.commandComplete(cmd))
- d.addErrback(self.failed)
-
- def commandComplete(self, cmd):
- if cmd.didFail():
- self.step_status.setText(["File not found."])
- self.finished(FAILURE)
- return
- s = cmd.updates["stat"][-1]
- if stat.S_ISREG(s[stat.ST_MODE]):
- self.step_status.setText(["File found."])
- self.finished(SUCCESS)
- else:
- self.step_status.setText(["Not a file."])
- self.finished(FAILURE)
-
-class CopyDirectory(SlaveBuildStep):
- """
- Copy a directory tree on the slave.
- """
- name='CopyDirectory'
- description=['Copying']
- descriptionDone=['Copied']
-
- renderables = [ 'src', 'dest' ]
-
- haltOnFailure = True
- flunkOnFailure = True
-
- def __init__(self, src, dest, timeout=None, maxTime=None, **kwargs):
- buildstep.BuildStep.__init__(self, **kwargs)
- self.src = src
- self.dest = dest
- self.timeout = timeout
- self.maxTime = maxTime
-
- def start(self):
- slavever = self.slaveVersion('cpdir')
- if not slavever:
- raise BuildSlaveTooOldError("slave is too old, does not know "
- "about cpdir")
-
- args = {'fromdir': self.src, 'todir': self.dest }
- if self.timeout:
- args['timeout'] = self.timeout
- if self.maxTime:
- args['maxTime'] = self.maxTime
-
- cmd = buildstep.RemoteCommand('cpdir', args)
- d = self.runCommand(cmd)
- d.addCallback(lambda res: self.commandComplete(cmd))
- d.addErrback(self.failed)
-
- def commandComplete(self, cmd):
- if cmd.didFail():
- self.step_status.setText(["Copying", self.src, "to", self.dest, "failed."])
- self.finished(FAILURE)
- return
- self.step_status.setText(self.describe(done=True))
- self.finished(SUCCESS)
-
- def describe(self, done=False):
- desc = self.descriptionDone if done else self.description
- desc = desc[:]
- desc.extend([self.src, "to", self.dest])
- return desc
-
-class RemoveDirectory(SlaveBuildStep):
- """
- Remove a directory tree on the slave.
- """
- name='RemoveDirectory'
- description=['Deleting']
- descriptionDone=['Deleted']
-
- renderables = [ 'dir' ]
-
- haltOnFailure = True
- flunkOnFailure = True
-
- def __init__(self, dir, **kwargs):
- buildstep.BuildStep.__init__(self, **kwargs)
- self.dir = dir
-
- def start(self):
- slavever = self.slaveVersion('rmdir')
- if not slavever:
- raise BuildSlaveTooOldError("slave is too old, does not know "
- "about rmdir")
- cmd = buildstep.RemoteCommand('rmdir', {'dir': self.dir })
- d = self.runCommand(cmd)
- d.addCallback(lambda res: self.commandComplete(cmd))
- d.addErrback(self.failed)
-
- def commandComplete(self, cmd):
- if cmd.didFail():
- self.step_status.setText(["Delete failed."])
- self.finished(FAILURE)
- return
- self.step_status.setText(self.describe(done=True))
- self.finished(SUCCESS)
-
-class MakeDirectory(SlaveBuildStep):
- """
- Create a directory on the slave.
- """
- name='MakeDirectory'
- description=['Creating']
- descriptionDone=['Created']
-
- renderables = [ 'dir' ]
-
- haltOnFailure = True
- flunkOnFailure = True
-
- def __init__(self, dir, **kwargs):
- buildstep.BuildStep.__init__(self, **kwargs)
- self.dir = dir
-
- def start(self):
- slavever = self.slaveVersion('mkdir')
- if not slavever:
- raise BuildSlaveTooOldError("slave is too old, does not know "
- "about mkdir")
- cmd = buildstep.RemoteCommand('mkdir', {'dir': self.dir })
- d = self.runCommand(cmd)
- d.addCallback(lambda res: self.commandComplete(cmd))
- d.addErrback(self.failed)
-
- def commandComplete(self, cmd):
- if cmd.didFail():
- self.step_status.setText(["Create failed."])
- self.finished(FAILURE)
- return
- self.step_status.setText(self.describe(done=True))
- self.finished(SUCCESS)
-
-class CompositeStepMixin():
- """I define utils for composite steps, factorizing basic remote commands"""
- def addLogForRemoteCommands(self, logname):
- """This method must be called by user classes
- composite steps could create several logs, this mixin functions will write
- to the last one.
- """
- self.rc_log = self.addLog(logname)
- return self.rc_log
-
- def runRemoteCommand(self, cmd, args, abandonOnFailure=True):
- """generic RemoteCommand boilerplate"""
- cmd = buildstep.RemoteCommand(cmd, args)
- cmd.useLog(self.rc_log, False)
- d = self.runCommand(cmd)
- def commandComplete(cmd):
- if abandonOnFailure and cmd.didFail():
- raise buildstep.BuildStepFailed()
- return cmd.didFail()
- d.addCallback(lambda res: commandComplete(cmd))
- return d
-
- def runRmdir(self, dir, **kwargs):
- """ remove a directory from the slave """
- return self.runRemoteCommand('rmdir',
- {'dir': dir, 'logEnviron': self.logEnviron },
- **kwargs)
-
- @defer.inlineCallbacks
- def pathExists(self, path):
- """ test whether path exists"""
- res = yield self.runRemoteCommand('stat', {'file': path,
- 'logEnviron': self.logEnviron,},
- abandonOnFailure=False)
- defer.returnValue(not res)
-
- def runMkdir(self, _dir, **kwargs):
- """ create a directory and its parents"""
- return self.runRemoteCommand('mkdir', {'dir': _dir,
- 'logEnviron': self.logEnviron,},
- **kwargs)