[cedar-backup-svn] SF.net SVN: cedar-backup: [811] cedar-backup2/trunk
Brought to you by:
pronovic
|
From: <pro...@us...> - 2007-12-15 23:10:41
|
Revision: 811
http://cedar-backup.svn.sourceforge.net/cedar-backup/?rev=811&view=rev
Author: pronovic
Date: 2007-12-15 15:10:39 -0800 (Sat, 15 Dec 2007)
Log Message:
-----------
Add configuration for managed remote peers
Modified Paths:
--------------
cedar-backup2/trunk/CedarBackup2/config.py
cedar-backup2/trunk/test/configtests.py
cedar-backup2/trunk/test/data/cback.conf.15
cedar-backup2/trunk/test/data/cback.conf.20
cedar-backup2/trunk/test/data/cback.conf.21
cedar-backup2/trunk/test/data/cback.conf.23
cedar-backup2/trunk/test/data/cback.conf.6
Modified: cedar-backup2/trunk/CedarBackup2/config.py
===================================================================
--- cedar-backup2/trunk/CedarBackup2/config.py 2007-12-15 21:43:57 UTC (rev 810)
+++ cedar-backup2/trunk/CedarBackup2/config.py 2007-12-15 23:10:39 UTC (rev 811)
@@ -1717,11 +1717,16 @@
- The collect directory must be an absolute path.
- The remote user must be a non-empty string.
- The rcp command must be a non-empty string.
+ - The rsh command must be a non-empty string.
+ - The cback command must be a non-empty string.
+ - Any managed action name must be a non-empty string matching C{ACTION_NAME_REGEX}
@sort: __init__, __repr__, __str__, __cmp__, name, collectDir, remoteUser, rcpCommand
"""
- def __init__(self, name=None, collectDir=None, remoteUser=None, rcpCommand=None):
+ def __init__(self, name=None, collectDir=None, remoteUser=None,
+ rcpCommand=None, rshCommand=None, cbackCommand=None,
+ managed=False, managedActions=None):
"""
Constructor for the C{RemotePeer} class.
@@ -1729,6 +1734,10 @@
@param collectDir: Collect directory to stage files from on peer.
@param remoteUser: Name of backup user on remote peer.
@param rcpCommand: Overridden rcp-compatible copy command for peer.
+ @param rshCommand: Overridden rsh-compatible remote shell command for peer.
+ @param cbackCommand: Overridden cback-compatible command to use on remote peer.
+ @param managed: Indicates whether this is a managed peer.
+ @param managedActions: Overridden set of actions that are managed on the peer.
@raise ValueError: If one of the values is invalid.
"""
@@ -1736,16 +1745,26 @@
self._collectDir = None
self._remoteUser = None
self._rcpCommand = None
+ self._rshCommand = None
+ self._cbackCommand = None
+ self._managed = None
+ self._managedActions = None
self.name = name
self.collectDir = collectDir
self.remoteUser = remoteUser
self.rcpCommand = rcpCommand
+ self.rshCommand = rshCommand
+ self.cbackCommand = cbackCommand
+ self.managed = managed
+ self.managedActions = managedActions
def __repr__(self):
"""
Official string representation for class instance.
"""
- return "RemotePeer(%s, %s, %s, %s)" % (self.name, self.collectDir, self.remoteUser, self.rcpCommand)
+ return "RemotePeer(%s, %s, %s, %s, %s, %s, %s, %s)" % (self.name, self.collectDir, self.remoteUser,
+ self.rcpCommand, self.rshCommand, self.cbackCommand,
+ self.managed, self.managedActions)
def __str__(self):
"""
@@ -1781,6 +1800,26 @@
return -1
else:
return 1
+ if self._rshCommand != other._rshCommand:
+ if self._rshCommand < other._rshCommand:
+ return -1
+ else:
+ return 1
+ if self._cbackCommand != other._cbackCommand:
+ if self._cbackCommand < other._cbackCommand:
+ return -1
+ else:
+ return 1
+ if self._managed != other._managed:
+ if self._managed < other._managed:
+ return -1
+ else:
+ return 1
+ if self._managedActions != other._managedActions:
+ if self._managedActions < other._managedActions:
+ return -1
+ else:
+ return 1
return 0
def _setName(self, value):
@@ -1853,10 +1892,86 @@
"""
return self._rcpCommand
+ def _setRshCommand(self, value):
+ """
+ Property target used to set the rsh command.
+ The value must be a non-empty string if it is not C{None}.
+ @raise ValueError: If the value is an empty string.
+ """
+ if value is not None:
+ if len(value) < 1:
+ raise ValueError("The rsh command must be a non-empty string.")
+ self._rshCommand = value
+
+ def _getRshCommand(self):
+ """
+ Property target used to get the rsh command.
+ """
+ return self._rshCommand
+
+ def _setCbackCommand(self, value):
+ """
+ Property target used to set the cback command.
+ The value must be a non-empty string if it is not C{None}.
+ @raise ValueError: If the value is an empty string.
+ """
+ if value is not None:
+ if len(value) < 1:
+ raise ValueError("The cback command must be a non-empty string.")
+ self._cbackCommand = value
+
+ def _getCbackCommand(self):
+ """
+ Property target used to get the cback command.
+ """
+ return self._cbackCommand
+
+ def _setManaged(self, value):
+ """
+ Property target used to set the managed flag.
+ No validations, but we normalize the value to C{True} or C{False}.
+ """
+ if value:
+ self._managed = True
+ else:
+ self._managed = False
+
+ def _getManaged(self):
+ """
+ Property target used to get the managed flag.
+ """
+ return self._managed
+
+ def _setManagedActions(self, value):
+ """
+ Property target used to set the managed actions list.
+ Elements do not have to exist on disk at the time of assignment.
+ """
+ if value is None:
+ self._managedActions = None
+ else:
+ try:
+ saved = self._managedActions
+ self._managedActions = RegexMatchList(ACTION_NAME_REGEX, emptyAllowed=False, prefix="Action name")
+ self._managedActions.extend(value)
+ except Exception, e:
+ self._managedActions = saved
+ raise e
+
+ def _getManagedActions(self):
+ """
+ Property target used to get the managed actions list.
+ """
+ return self._managedActions
+
name = property(_getName, _setName, None, "Name of the peer, must be a valid hostname.")
collectDir = property(_getCollectDir, _setCollectDir, None, "Collect directory to stage files from on peer.")
remoteUser = property(_getRemoteUser, _setRemoteUser, None, "Name of backup user on remote peer.")
rcpCommand = property(_getRcpCommand, _setRcpCommand, None, "Overridden rcp-compatible copy command for peer.")
+ rshCommand = property(_getRshCommand, _setRshCommand, None, "Overridden rsh-compatible remote shell command for peer.")
+ cbackCommand = property(_getCbackCommand, _setCbackCommand, None, "Overridden cback-compatible command to use on remote peer.")
+ managed = property(_getManaged, _setManaged, None, "Indicates whether this is a managed peer.")
+ managedActions = property(_getManagedActions, _setManagedActions, None, "Overridden set of actions that are managed on the peer.")
########################################################################
@@ -2140,6 +2255,8 @@
- All of the other values must be non-empty strings if they are set to something other than C{None}.
- The overrides list must be a list of C{CommandOverride} objects.
- The hooks list must be a list of C{ActionHook} objects.
+ - The cback command must be a non-empty string.
+ - Any managed action name must be a non-empty string matching C{ACTION_NAME_REGEX}
@sort: __init__, __repr__, __str__, __cmp__, startingDay, workingDir,
backupUser, backupGroup, rcpCommand, rshCommand, overrides
@@ -2147,7 +2264,8 @@
def __init__(self, startingDay=None, workingDir=None, backupUser=None,
backupGroup=None, rcpCommand=None, overrides=None,
- hooks=None, rshCommand=None):
+ hooks=None, rshCommand=None, cbackCommand=None,
+ managedActions=None):
"""
Constructor for the C{OptionsConfig} class.
@@ -2157,8 +2275,10 @@
@param backupGroup: Effective group that backups should run as.
@param rcpCommand: Default rcp-compatible copy command for staging.
@param rshCommand: Default rsh-compatible command to use for remote shells.
+ @param cbackCommand: Default cback-compatible command to use on managed remote peers.
@param overrides: List of configured command path overrides, if any.
@param hooks: List of configured pre- and post-action hooks.
+ @parma managedActions: Default set of actions that are managed on remote peers.
@raise ValueError: If one of the values is invalid.
"""
@@ -2168,25 +2288,30 @@
self._backupGroup = None
self._rcpCommand = None
self._rshCommand = None
+ self._cbackCommand = None
self._overrides = None
self._hooks = None
+ self._managedActions = None
self.startingDay = startingDay
self.workingDir = workingDir
self.backupUser = backupUser
self.backupGroup = backupGroup
self.rcpCommand = rcpCommand
self.rshCommand = rshCommand
+ self.cbackCommand = cbackCommand
self.overrides = overrides
self.hooks = hooks
+ self.managedActions = managedActions
def __repr__(self):
"""
Official string representation for class instance.
"""
- return "OptionsConfig(%s, %s, %s, %s, %s, %s, %s, %s)" % (self.startingDay, self.workingDir,
- self.backupUser, self.backupGroup,
- self.rcpCommand, self.overrides,
- self.hooks, self.rshCommand)
+ return "OptionsConfig(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s)" % (self.startingDay, self.workingDir,
+ self.backupUser, self.backupGroup,
+ self.rcpCommand, self.overrides,
+ self.hooks, self.rshCommand,
+ self.cbackCommand, self.managedActions)
def __str__(self):
"""
@@ -2232,6 +2357,11 @@
return -1
else:
return 1
+ if self._cbackCommand != other._cbackCommand:
+ if self._cbackCommand < other._cbackCommand:
+ return -1
+ else:
+ return 1
if self._overrides != other._overrides:
if self._overrides < other._overrides:
return -1
@@ -2242,6 +2372,11 @@
return -1
else:
return 1
+ if self._managedActions != other._managedActions:
+ if self._managedActions < other._managedActions:
+ return -1
+ else:
+ return 1
return 0
def _setStartingDay(self, value):
@@ -2349,6 +2484,23 @@
"""
return self._rshCommand
+ def _setCbackCommand(self, value):
+ """
+ Property target used to set the cback command.
+ The value must be a non-empty string if it is not C{None}.
+ @raise ValueError: If the value is an empty string.
+ """
+ if value is not None:
+ if len(value) < 1:
+ raise ValueError("The cback command must be a non-empty string.")
+ self._cbackCommand = value
+
+ def _getCbackCommand(self):
+ """
+ Property target used to get the cback command.
+ """
+ return self._cbackCommand
+
def _setOverrides(self, value):
"""
Property target used to set the command path overrides list.
@@ -2395,14 +2547,38 @@
"""
return self._hooks
+ def _setManagedActions(self, value):
+ """
+ Property target used to set the managed actions list.
+ Elements do not have to exist on disk at the time of assignment.
+ """
+ if value is None:
+ self._managedActions = None
+ else:
+ try:
+ saved = self._managedActions
+ self._managedActions = RegexMatchList(ACTION_NAME_REGEX, emptyAllowed=False, prefix="Action name")
+ self._managedActions.extend(value)
+ except Exception, e:
+ self._managedActions = saved
+ raise e
+
+ def _getManagedActions(self):
+ """
+ Property target used to get the managed actions list.
+ """
+ return self._managedActions
+
startingDay = property(_getStartingDay, _setStartingDay, None, "Day that starts the week.")
workingDir = property(_getWorkingDir, _setWorkingDir, None, "Working (temporary) directory to use for backups.")
backupUser = property(_getBackupUser, _setBackupUser, None, "Effective user that backups should run as.")
backupGroup = property(_getBackupGroup, _setBackupGroup, None, "Effective group that backups should run as.")
rcpCommand = property(_getRcpCommand, _setRcpCommand, None, "Default rcp-compatible copy command for staging.")
rshCommand = property(_getRshCommand, _setRshCommand, None, "Default rsh-compatible command to use for remote shells.")
+ cbackCommand = property(_getCbackCommand, _setCbackCommand, None, "Default cback-compatible command to use on managed remote peers.")
overrides = property(_getOverrides, _setOverrides, None, "List of configured command path overrides, if any.")
hooks = property(_getHooks, _setHooks, None, "List of configured pre- and post-action hooks.")
+ managedActions = property(_getManagedActions, _setManagedActions, None, "Default set of actions that are managed on remote peers.")
########################################################################
@@ -4005,13 +4181,19 @@
backupGroup //cb_config/options/backup_group
rcpCommand //cb_config/options/rcp_command
rshCommand //cb_config/options/rsh_command
+ cbackCommand //cb_config/options/cback_command
+ managedActions //cb_config/options/managed_actions
+ The list of managed actions is a comma-separated list of action names.
+
We also read groups of the following items, one list element per
item::
overrides //cb_config/options/override
+ hooks //cb_config/options/hook
- The overrides are parsed by L{_parseOverrides}.
+ The overrides are parsed by L{_parseOverrides} and the hooks are parsed
+ by L{_parseHooks}.
@param parentNode: Parent node to search beneath.
@@ -4028,8 +4210,11 @@
options.backupGroup = readString(sectionNode, "backup_group")
options.rcpCommand = readString(sectionNode, "rcp_command")
options.rshCommand = readString(sectionNode, "rsh_command")
+ options.cbackCommand = readString(sectionNode, "cback_command")
options.overrides = Config._parseOverrides(sectionNode)
options.hooks = Config._parseHooks(sectionNode)
+ managedActions = readString(sectionNode, "managed_actions")
+ options.managedActions = Config._parseCommaSeparatedString(managedActions)
return options
_parseOptions = staticmethod(_parseOptions)
@@ -4441,8 +4626,12 @@
We also read the following individual fields for remote peers
only::
- remoteUser backup_user
- rcpCommand rcp_command
+ remoteUser backup_user
+ rcpCommand rcp_command
+ rshCommand rsh_command
+ cbackCommand cback_command
+ managed managed
+ managedActions managed_actions
Additionally, the value in the C{type} field is used to determine whether
this entry is a remote peer. If the type is C{"remote"}, it's a remote
@@ -4472,6 +4661,11 @@
remotePeer.collectDir = readString(entry, "collect_dir")
remotePeer.remoteUser = readString(entry, "backup_user")
remotePeer.rcpCommand = readString(entry, "rcp_command")
+ remotePeer.rshCommand = readString(entry, "rsh_command")
+ remotePeer.cbackCommand = readString(entry, "cback_command")
+ remotePeer.managed = readBoolean(entry, "managed")
+ managedActions = readString(entry, "managed_actions")
+ remotePeer.managedActions = Config._parseCommaSeparatedString(managedActions)
remotePeers.append(remotePeer)
if localPeers == []:
localPeers = None
@@ -4655,6 +4849,8 @@
backupGroup //cb_config/options/backup_group
rcpCommand //cb_config/options/rcp_command
rshCommand //cb_config/options/rsh_command
+ cbackCommand //cb_config/options/cback_command
+ managedActions //cb_config/options/managed_actions
We also add groups of the following items, one list element per
item::
@@ -4680,6 +4876,9 @@
addStringNode(xmlDom, sectionNode, "backup_group", optionsConfig.backupGroup)
addStringNode(xmlDom, sectionNode, "rcp_command", optionsConfig.rcpCommand)
addStringNode(xmlDom, sectionNode, "rsh_command", optionsConfig.rshCommand)
+ addStringNode(xmlDom, sectionNode, "cback_command", optionsConfig.cbackCommand)
+ managedActions = Config._buildCommaSeparatedString(optionsConfig.managedActions)
+ addStringNode(xmlDom, sectionNode, "managed_actions", managedActions)
if optionsConfig.overrides is not None:
for override in optionsConfig.overrides:
Config._addOverride(xmlDom, sectionNode, override)
@@ -5077,10 +5276,15 @@
We add the following fields to the document::
- name peer/name
- collectDir peer/collect_dir
- remoteUser peer/backup_user
- rcpCommand peer/rcp_command
+ name peer/name
+ collectDir peer/collect_dir
+ remoteUser peer/backup_user
+ rcpCommand peer/rcp_command
+ rcpCommand peer/rcp_command
+ rshCommand peer/rsh_command
+ cbackCommand peer/cback_command
+ managed peer/managed
+ managedActions peer/managed_actions
Additionally, C{peer/type} is filled in with C{"remote"}, since this is a
remote peer.
@@ -5102,6 +5306,11 @@
addStringNode(xmlDom, sectionNode, "collect_dir", remotePeer.collectDir)
addStringNode(xmlDom, sectionNode, "backup_user", remotePeer.remoteUser)
addStringNode(xmlDom, sectionNode, "rcp_command", remotePeer.rcpCommand)
+ addStringNode(xmlDom, sectionNode, "rsh_command", remotePeer.rshCommand)
+ addStringNode(xmlDom, sectionNode, "cback_command", remotePeer.cbackCommand)
+ addBooleanNode(xmlDom, sectionNode, "managed", remotePeer.managed)
+ managedActions = Config._buildCommaSeparatedString(remotePeer.managedActions)
+ addStringNode(xmlDom, sectionNode, "managed_actions", managedActions)
_addRemotePeer = staticmethod(_addRemotePeer)
def _addPurgeDir(xmlDom, parentNode, purgeDir):
@@ -5459,6 +5668,9 @@
raise ValueError("Remote user must either be set in options section or individual remote peer.")
if (self.options is None or self.options.rcpCommand is None) and remotePeer.rcpCommand is None: # redundant
raise ValueError("Remote copy command must either be set in options section or individual remote peer.")
+ if remotePeer.managed:
+ if (self.options is None or self.options.rshCommand is None) and remotePeer.rshCommand is None: # redundant
+ raise ValueError("Remote shell command must either be set in options section or individual remote peer.")
Config._checkUnique("Duplicate peer names exist:", names)
Modified: cedar-backup2/trunk/test/configtests.py
===================================================================
--- cedar-backup2/trunk/test/configtests.py 2007-12-15 21:43:57 UTC (rev 810)
+++ cedar-backup2/trunk/test/configtests.py 2007-12-15 23:10:39 UTC (rev 811)
@@ -3313,16 +3313,24 @@
self.failUnlessEqual(None, remotePeer.collectDir)
self.failUnlessEqual(None, remotePeer.remoteUser)
self.failUnlessEqual(None, remotePeer.rcpCommand)
+ self.failUnlessEqual(None, remotePeer.rshCommand)
+ self.failUnlessEqual(None, remotePeer.cbackCommand)
+ self.failUnlessEqual(False, remotePeer.managed)
+ self.failUnlessEqual(None, remotePeer.managedActions)
def testConstructor_002(self):
"""
Test constructor with all values filled in, with valid values.
"""
- remotePeer = RemotePeer("myname", "/stuff", "backup", "scp -1 -B")
+ remotePeer = RemotePeer("myname", "/stuff", "backup", "scp -1 -B", "ssh", "cback", True, [ "collect", ])
self.failUnlessEqual("myname", remotePeer.name)
self.failUnlessEqual("/stuff", remotePeer.collectDir)
self.failUnlessEqual("backup", remotePeer.remoteUser)
self.failUnlessEqual("scp -1 -B", remotePeer.rcpCommand)
+ self.failUnlessEqual("ssh", remotePeer.rshCommand)
+ self.failUnlessEqual("cback", remotePeer.cbackCommand)
+ self.failUnlessEqual(True, remotePeer.managed)
+ self.failUnlessEqual(["collect", ], remotePeer.managedActions)
def testConstructor_003(self):
"""
@@ -3441,7 +3449,132 @@
self.failUnlessAssignRaises(ValueError, remotePeer, "rcpCommand", "")
self.failUnlessEqual(None, remotePeer.rcpCommand)
+ def testConstructor_016(self):
+ """
+ Test assignment of rshCommand attribute, valid value.
+ """
+ remotePeer = RemotePeer()
+ self.failUnlessEqual(None, remotePeer.rshCommand)
+ remotePeer.rshCommand = "scp"
+ self.failUnlessEqual("scp", remotePeer.rshCommand)
+ def testConstructor_017(self):
+ """
+ Test assignment of rshCommand attribute, invalid value (empty).
+ """
+ remotePeer = RemotePeer()
+ self.failUnlessEqual(None, remotePeer.rshCommand)
+ self.failUnlessAssignRaises(ValueError, remotePeer, "rshCommand", "")
+ self.failUnlessEqual(None, remotePeer.rshCommand)
+
+ def testConstructor_018(self):
+ """
+ Test assignment of cbackCommand attribute, valid value.
+ """
+ remotePeer = RemotePeer()
+ self.failUnlessEqual(None, remotePeer.cbackCommand)
+ remotePeer.cbackCommand = "scp"
+ self.failUnlessEqual("scp", remotePeer.cbackCommand)
+
+ def testConstructor_019(self):
+ """
+ Test assignment of cbackCommand attribute, invalid value (empty).
+ """
+ remotePeer = RemotePeer()
+ self.failUnlessEqual(None, remotePeer.cbackCommand)
+ self.failUnlessAssignRaises(ValueError, remotePeer, "cbackCommand", "")
+ self.failUnlessEqual(None, remotePeer.cbackCommand)
+
+ def testConstructor_021(self):
+ """
+ Test assignment of managed attribute, None value.
+ """
+ remotePeer = RemotePeer(managed=True)
+ self.failUnlessEqual(True, remotePeer.managed)
+ remotePeer.managed = None
+ self.failUnlessEqual(False, remotePeer.managed)
+
+ def testConstructor_022(self):
+ """
+ Test assignment of managed attribute, valid value (real boolean).
+ """
+ remotePeer = RemotePeer()
+ self.failUnlessEqual(False, remotePeer.managed)
+ remotePeer.managed = True
+ self.failUnlessEqual(True, remotePeer.managed)
+ remotePeer.managed = False
+ self.failUnlessEqual(False, remotePeer.managed)
+
+ def testConstructor_023(self):
+ """
+ Test assignment of managed attribute, valid value (expression).
+ """
+ remotePeer = RemotePeer()
+ self.failUnlessEqual(False, remotePeer.managed)
+ remotePeer.managed = 0
+ self.failUnlessEqual(False, remotePeer.managed)
+ remotePeer.managed = []
+ self.failUnlessEqual(False, remotePeer.managed)
+ remotePeer.managed = None
+ self.failUnlessEqual(False, remotePeer.managed)
+ remotePeer.managed = ['a']
+ self.failUnlessEqual(True, remotePeer.managed)
+ remotePeer.managed = 3
+ self.failUnlessEqual(True, remotePeer.managed)
+
+ def testConstructor_024(self):
+ """
+ Test assignment of managedActions attribute, None value.
+ """
+ remotePeer = RemotePeer()
+ self.failUnlessEqual(None, remotePeer.managedActions)
+ remotePeer.managedActions = None
+ self.failUnlessEqual(None, remotePeer.managedActions)
+
+ def testConstructor_025(self):
+ """
+ Test assignment of managedActions attribute, empty list.
+ """
+ remotePeer = RemotePeer()
+ self.failUnlessEqual(None, remotePeer.managedActions)
+ remotePeer.managedActions = []
+ self.failUnlessEqual([], remotePeer.managedActions)
+
+ def testConstructor_026(self):
+ """
+ Test assignment of managedActions attribute, non-empty list, valid values.
+ """
+ remotePeer = RemotePeer()
+ self.failUnlessEqual(None, remotePeer.managedActions)
+ remotePeer.managedActions = ['a', 'b', ]
+ self.failUnlessEqual(['a', 'b'], remotePeer.managedActions)
+
+ def testConstructor_027(self):
+ """
+ Test assignment of managedActions attribute, non-empty list, invalid value.
+ """
+ remotePeer = RemotePeer()
+ self.failUnlessEqual(None, remotePeer.managedActions)
+ self.failUnlessAssignRaises(ValueError, remotePeer, "managedActions", ["KEN", ])
+ self.failUnlessEqual(None, remotePeer.managedActions)
+ self.failUnlessAssignRaises(ValueError, remotePeer, "managedActions", ["hello, world" ])
+ self.failUnlessEqual(None, remotePeer.managedActions)
+ self.failUnlessAssignRaises(ValueError, remotePeer, "managedActions", ["dash-word", ])
+ self.failUnlessEqual(None, remotePeer.managedActions)
+ self.failUnlessAssignRaises(ValueError, remotePeer, "managedActions", ["", ])
+ self.failUnlessEqual(None, remotePeer.managedActions)
+ self.failUnlessAssignRaises(ValueError, remotePeer, "managedActions", [None, ])
+ self.failUnlessEqual(None, remotePeer.managedActions)
+
+ def testConstructor_028(self):
+ """
+ Test assignment of managedActions attribute, non-empty list, mixed values.
+ """
+ remotePeer = RemotePeer()
+ self.failUnlessEqual(None, remotePeer.managedActions)
+ self.failUnlessAssignRaises(ValueError, remotePeer, "managedActions", ["ken", "dash-word", ])
+
+
############################
# Test comparison operators
############################
@@ -3464,8 +3597,8 @@
"""
Test comparison of two identical objects, all attributes non-None.
"""
- remotePeer1 = RemotePeer("name", "/etc/stuff/tmp/X11", "backup", "scp -1 -B")
- remotePeer2 = RemotePeer("name", "/etc/stuff/tmp/X11", "backup", "scp -1 -B")
+ remotePeer1 = RemotePeer("name", "/etc/stuff/tmp/X11", "backup", "scp -1 -B", "ssh", "cback", True, [ "collect", ])
+ remotePeer2 = RemotePeer("name", "/etc/stuff/tmp/X11", "backup", "scp -1 -B", "ssh", "cback", True, [ "collect", ])
self.failUnless(remotePeer1 == remotePeer2)
self.failUnless(not remotePeer1 < remotePeer2)
self.failUnless(remotePeer1 <= remotePeer2)
@@ -3491,8 +3624,8 @@
"""
Test comparison of two differing objects, name differs.
"""
- remotePeer1 = RemotePeer("name1", "/etc/stuff/tmp/X11", "backup", "scp -1 -B")
- remotePeer2 = RemotePeer("name2", "/etc/stuff/tmp/X11", "backup", "scp -1 -B")
+ remotePeer1 = RemotePeer("name1", "/etc/stuff/tmp/X11", "backup", "scp -1 -B", "ssh", "cback", True, [ "collect", ])
+ remotePeer2 = RemotePeer("name2", "/etc/stuff/tmp/X11", "backup", "scp -1 -B", "ssh", "cback", True, [ "collect", ])
self.failIfEqual(remotePeer1, remotePeer2)
self.failUnless(not remotePeer1 == remotePeer2)
self.failUnless(remotePeer1 < remotePeer2)
@@ -3519,8 +3652,8 @@
"""
Test comparison of two differing objects, collectDir differs.
"""
- remotePeer1 = RemotePeer("name", "/etc", "backup", "scp -1 -B")
- remotePeer2 = RemotePeer("name", "/etc/stuff/tmp/X11", "backup", "scp -1 -B")
+ remotePeer1 = RemotePeer("name", "/etc", "backup", "scp -1 -B", "ssh", "cback", True, [ "collect", ])
+ remotePeer2 = RemotePeer("name", "/etc/stuff/tmp/X11", "backup", "scp -1 -B", "ssh", "cback", True, [ "collect", ])
self.failIfEqual(remotePeer1, remotePeer2)
self.failUnless(not remotePeer1 == remotePeer2)
self.failUnless(remotePeer1 < remotePeer2)
@@ -3547,8 +3680,8 @@
"""
Test comparison of two differing objects, remoteUser differs.
"""
- remotePeer1 = RemotePeer("name", "/etc/stuff/tmp/X11", "spot", "scp -1 -B")
- remotePeer2 = RemotePeer("name", "/etc/stuff/tmp/X11", "backup", "scp -1 -B")
+ remotePeer1 = RemotePeer("name", "/etc/stuff/tmp/X11", "spot", "scp -1 -B", "ssh", "cback", True, [ "collect", ])
+ remotePeer2 = RemotePeer("name", "/etc/stuff/tmp/X11", "backup", "scp -1 -B", "ssh", "cback", True, [ "collect", ])
self.failIfEqual(remotePeer1, remotePeer2)
self.failUnless(not remotePeer1 == remotePeer2)
self.failUnless(not remotePeer1 < remotePeer2)
@@ -3575,8 +3708,8 @@
"""
Test comparison of two differing objects, rcpCommand differs.
"""
- remotePeer1 = RemotePeer("name", "/etc/stuff/tmp/X11", "backup", "scp -2 -B")
- remotePeer2 = RemotePeer("name", "/etc/stuff/tmp/X11", "backup", "scp -1 -B")
+ remotePeer1 = RemotePeer("name", "/etc/stuff/tmp/X11", "backup", "scp -2 -B", "ssh", "cback", True, [ "collect", ])
+ remotePeer2 = RemotePeer("name", "/etc/stuff/tmp/X11", "backup", "scp -1 -B", "ssh", "cback", True, [ "collect", ])
self.failIfEqual(remotePeer1, remotePeer2)
self.failUnless(not remotePeer1 == remotePeer2)
self.failUnless(not remotePeer1 < remotePeer2)
@@ -3585,7 +3718,151 @@
self.failUnless(remotePeer1 >= remotePeer2)
self.failUnless(remotePeer1 != remotePeer2)
+ def testComparison_011(self):
+ """
+ Test comparison of two differing objects, rshCommand differs (one None).
+ """
+ remotePeer1 = RemotePeer()
+ remotePeer2 = RemotePeer(rshCommand="ssh")
+ self.failIfEqual(remotePeer1, remotePeer2)
+ self.failUnless(not remotePeer1 == remotePeer2)
+ self.failUnless(remotePeer1 < remotePeer2)
+ self.failUnless(remotePeer1 <= remotePeer2)
+ self.failUnless(not remotePeer1 > remotePeer2)
+ self.failUnless(not remotePeer1 >= remotePeer2)
+ self.failUnless(remotePeer1 != remotePeer2)
+ def testComparison_012(self):
+ """
+ Test comparison of two differing objects, rshCommand differs.
+ """
+ remotePeer1 = RemotePeer("name", "/etc/stuff/tmp/X11", "backup", "scp -1 -B", "ssh2", "cback", True, [ "collect", ])
+ remotePeer2 = RemotePeer("name", "/etc/stuff/tmp/X11", "backup", "scp -1 -B", "ssh1", "cback", True, [ "collect", ])
+ self.failIfEqual(remotePeer1, remotePeer2)
+ self.failUnless(not remotePeer1 == remotePeer2)
+ self.failUnless(not remotePeer1 < remotePeer2)
+ self.failUnless(not remotePeer1 <= remotePeer2)
+ self.failUnless(remotePeer1 > remotePeer2)
+ self.failUnless(remotePeer1 >= remotePeer2)
+ self.failUnless(remotePeer1 != remotePeer2)
+
+ def testComparison_013(self):
+ """
+ Test comparison of two differing objects, cbackCommand differs (one None).
+ """
+ remotePeer1 = RemotePeer()
+ remotePeer2 = RemotePeer(cbackCommand="cback")
+ self.failIfEqual(remotePeer1, remotePeer2)
+ self.failUnless(not remotePeer1 == remotePeer2)
+ self.failUnless(remotePeer1 < remotePeer2)
+ self.failUnless(remotePeer1 <= remotePeer2)
+ self.failUnless(not remotePeer1 > remotePeer2)
+ self.failUnless(not remotePeer1 >= remotePeer2)
+ self.failUnless(remotePeer1 != remotePeer2)
+
+ def testComparison_014(self):
+ """
+ Test comparison of two differing objects, cbackCommand differs.
+ """
+ remotePeer1 = RemotePeer("name", "/etc/stuff/tmp/X11", "backup", "scp -1 -B", "ssh", "cback2", True, [ "collect", ])
+ remotePeer2 = RemotePeer("name", "/etc/stuff/tmp/X11", "backup", "scp -1 -B", "ssh", "cback1", True, [ "collect", ])
+ self.failIfEqual(remotePeer1, remotePeer2)
+ self.failUnless(not remotePeer1 == remotePeer2)
+ self.failUnless(not remotePeer1 < remotePeer2)
+ self.failUnless(not remotePeer1 <= remotePeer2)
+ self.failUnless(remotePeer1 > remotePeer2)
+ self.failUnless(remotePeer1 >= remotePeer2)
+ self.failUnless(remotePeer1 != remotePeer2)
+
+ def testComparison_015(self):
+ """
+ Test comparison of two differing objects, managed differs (one None).
+ """
+ remotePeer1 = RemotePeer()
+ remotePeer2 = RemotePeer(managed=True)
+ self.failIfEqual(remotePeer1, remotePeer2)
+ self.failUnless(not remotePeer1 == remotePeer2)
+ self.failUnless(remotePeer1 < remotePeer2)
+ self.failUnless(remotePeer1 <= remotePeer2)
+ self.failUnless(not remotePeer1 > remotePeer2)
+ self.failUnless(not remotePeer1 >= remotePeer2)
+ self.failUnless(remotePeer1 != remotePeer2)
+
+ def testComparison_016(self):
+ """
+ Test comparison of two differing objects, managed differs.
+ """
+ remotePeer1 = RemotePeer("name", "/etc/stuff/tmp/X11", "backup", "scp -1 -B", "ssh", "cback", False, [ "collect", ])
+ remotePeer2 = RemotePeer("name", "/etc/stuff/tmp/X11", "backup", "scp -1 -B", "ssh", "cback", True, [ "collect", ])
+ self.failIfEqual(remotePeer1, remotePeer2)
+ self.failUnless(not remotePeer1 == remotePeer2)
+ self.failUnless(remotePeer1 < remotePeer2)
+ self.failUnless(remotePeer1 <= remotePeer2)
+ self.failUnless(not remotePeer1 > remotePeer2)
+ self.failUnless(not remotePeer1 >= remotePeer2)
+ self.failUnless(remotePeer1 != remotePeer2)
+
+ def testComparison_017(self):
+ """
+ Test comparison of two differing objects, managedActions differs (one
+ None, one empty).
+ """
+ remotePeer1 = RemotePeer("name", "/etc/stuff/tmp/X11", "backup", "scp -1 -B", "ssh", "cback", True, None)
+ remotePeer2 = RemotePeer("name", "/etc/stuff/tmp/X11", "backup", "scp -1 -B", "ssh", "cback", True, [])
+ self.failIfEqual(remotePeer1, remotePeer2)
+ self.failUnless(not remotePeer1 == remotePeer2)
+ self.failUnless(remotePeer1 < remotePeer2)
+ self.failUnless(remotePeer1 <= remotePeer2)
+ self.failUnless(not remotePeer1 > remotePeer2)
+ self.failUnless(not remotePeer1 >= remotePeer2)
+ self.failUnless(remotePeer1 != remotePeer2)
+
+ def testComparison_018(self):
+ """
+ Test comparison of two differing objects, managedActions differs (one
+ None, one not empty).
+ """
+ remotePeer1 = RemotePeer("name", "/etc/stuff/tmp/X11", "backup", "scp -1 -B", "ssh", "cback", True, None)
+ remotePeer2 = RemotePeer("name", "/etc/stuff/tmp/X11", "backup", "scp -1 -B", "ssh", "cback", True, [ "collect", ])
+ self.failIfEqual(remotePeer1, remotePeer2)
+ self.failUnless(not remotePeer1 == remotePeer2)
+ self.failUnless(remotePeer1 < remotePeer2)
+ self.failUnless(remotePeer1 <= remotePeer2)
+ self.failUnless(not remotePeer1 > remotePeer2)
+ self.failUnless(not remotePeer1 >= remotePeer2)
+ self.failUnless(remotePeer1 != remotePeer2)
+
+ def testComparison_019(self):
+ """
+ Test comparison of two differing objects, managedActions differs (one
+ empty, one not empty).
+ """
+ remotePeer1 = RemotePeer("name", "/etc/stuff/tmp/X11", "backup", "scp -1 -B", "ssh", "cback", True, [] )
+ remotePeer2 = RemotePeer("name", "/etc/stuff/tmp/X11", "backup", "scp -1 -B", "ssh", "cback", True, [ "collect", ])
+ self.failIfEqual(remotePeer1, remotePeer2)
+ self.failUnless(not remotePeer1 == remotePeer2)
+ self.failUnless(remotePeer1 < remotePeer2)
+ self.failUnless(remotePeer1 <= remotePeer2)
+ self.failUnless(not remotePeer1 > remotePeer2)
+ self.failUnless(not remotePeer1 >= remotePeer2)
+ self.failUnless(remotePeer1 != remotePeer2)
+
+ def testComparison_020(self):
+ """
+ Test comparison of two differing objects, managedActions differs (both
+ not empty).
+ """
+ remotePeer1 = RemotePeer("name", "/etc/stuff/tmp/X11", "backup", "scp -1 -B", "ssh", "cback", True, [ "purge", ])
+ remotePeer2 = RemotePeer("name", "/etc/stuff/tmp/X11", "backup", "scp -1 -B", "ssh", "cback", True, [ "collect", ])
+ self.failIfEqual(remotePeer1, remotePeer2)
+ self.failUnless(not remotePeer1 == remotePeer2)
+ self.failUnless(not remotePeer1 < remotePeer2)
+ self.failUnless(not remotePeer1 <= remotePeer2)
+ self.failUnless(remotePeer1 > remotePeer2)
+ self.failUnless(remotePeer1 >= remotePeer2)
+ self.failUnless(remotePeer1 != remotePeer2)
+
+
############################
# TestReferenceConfig class
############################
@@ -4300,21 +4577,26 @@
self.failUnlessEqual(None, options.backupGroup)
self.failUnlessEqual(None, options.rcpCommand)
self.failUnlessEqual(None, options.rshCommand)
+ self.failUnlessEqual(None, options.cbackCommand)
self.failUnlessEqual(None, options.overrides)
+ self.failUnlessEqual(None, options.hooks)
+ self.failUnlessEqual(None, options.managedActions)
def testConstructor_002(self):
"""
Test constructor with all values filled in, with valid values (lists empty).
"""
- options = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", [], [], "ssh")
+ options = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", [], [], "ssh", "cback", [])
self.failUnlessEqual("monday", options.startingDay)
self.failUnlessEqual("/tmp", options.workingDir)
self.failUnlessEqual("user", options.backupUser)
self.failUnlessEqual("group", options.backupGroup)
self.failUnlessEqual("scp -1 -B", options.rcpCommand)
self.failUnlessEqual("ssh", options.rshCommand)
+ self.failUnlessEqual("cback", options.cbackCommand)
self.failUnlessEqual([], options.overrides)
self.failUnlessEqual([], options.hooks)
+ self.failUnlessEqual([], options.managedActions)
def testConstructor_003(self):
"""
@@ -4487,15 +4769,18 @@
"""
overrides = [ CommandOverride("mkisofs", "/usr/bin/mkisofs"), ]
hooks = [ PreActionHook("collect", "ls -l"), ]
- options = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides, hooks, "ssh")
+ managedActions = [ "collect", "purge", ]
+ options = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides, hooks, "ssh", "cback", managedActions)
self.failUnlessEqual("monday", options.startingDay)
self.failUnlessEqual("/tmp", options.workingDir)
self.failUnlessEqual("user", options.backupUser)
self.failUnlessEqual("group", options.backupGroup)
self.failUnlessEqual("scp -1 -B", options.rcpCommand)
self.failUnlessEqual("ssh", options.rshCommand)
+ self.failUnlessEqual("cback", options.cbackCommand)
self.failUnlessEqual(overrides, options.overrides)
self.failUnlessEqual(hooks, options.hooks)
+ self.failUnlessEqual(managedActions, options.managedActions)
def testConstructor_021(self):
"""
@@ -4658,7 +4943,86 @@
self.failUnlessAssignRaises(ValueError, options, "rshCommand", "")
self.failUnlessEqual(None, options.rshCommand)
+ def testConstructor_038(self):
+ """
+ Test assignment of cbackCommand attribute, None value.
+ """
+ options = OptionsConfig(cbackCommand="command")
+ self.failUnlessEqual("command", options.cbackCommand)
+ options.cbackCommand = None
+ self.failUnlessEqual(None, options.cbackCommand)
+ def testConstructor_039(self):
+ """
+ Test assignment of cbackCommand attribute, valid value.
+ """
+ options = OptionsConfig()
+ self.failUnlessEqual(None, options.cbackCommand)
+ options.cbackCommand = "command"
+ self.failUnlessEqual("command", options.cbackCommand)
+
+ def testConstructor_040(self):
+ """
+ Test assignment of cbackCommand attribute, invalid value (empty).
+ """
+ options = OptionsConfig()
+ self.failUnlessEqual(None, options.cbackCommand)
+ self.failUnlessAssignRaises(ValueError, options, "cbackCommand", "")
+ self.failUnlessEqual(None, options.cbackCommand)
+
+ def testConstructor_041(self):
+ """
+ Test assignment of managedActions attribute, None value.
+ """
+ options = OptionsConfig()
+ self.failUnlessEqual(None, options.managedActions)
+ options.managedActions = None
+ self.failUnlessEqual(None, options.managedActions)
+
+ def testConstructor_042(self):
+ """
+ Test assignment of managedActions attribute, empty list.
+ """
+ options = OptionsConfig()
+ self.failUnlessEqual(None, options.managedActions)
+ options.managedActions = []
+ self.failUnlessEqual([], options.managedActions)
+
+ def testConstructor_043(self):
+ """
+ Test assignment of managedActions attribute, non-empty list, valid values.
+ """
+ options = OptionsConfig()
+ self.failUnlessEqual(None, options.managedActions)
+ options.managedActions = ['a', 'b', ]
+ self.failUnlessEqual(['a', 'b'], options.managedActions)
+
+ def testConstructor_044(self):
+ """
+ Test assignment of managedActions attribute, non-empty list, invalid value.
+ """
+ options = OptionsConfig()
+ self.failUnlessEqual(None, options.managedActions)
+ self.failUnlessAssignRaises(ValueError, options, "managedActions", ["KEN", ])
+ self.failUnlessEqual(None, options.managedActions)
+ self.failUnlessAssignRaises(ValueError, options, "managedActions", ["hello, world" ])
+ self.failUnlessEqual(None, options.managedActions)
+ self.failUnlessAssignRaises(ValueError, options, "managedActions", ["dash-word", ])
+ self.failUnlessEqual(None, options.managedActions)
+ self.failUnlessAssignRaises(ValueError, options, "managedActions", ["", ])
+ self.failUnlessEqual(None, options.managedActions)
+ self.failUnlessAssignRaises(ValueError, options, "managedActions", [None, ])
+ self.failUnlessEqual(None, options.managedActions)
+
+ def testConstructor_045(self):
+ """
+ Test assignment of managedActions attribute, non-empty list, mixed values.
+ """
+ options = OptionsConfig()
+ self.failUnlessEqual(None, options.managedActions)
+ self.failUnlessAssignRaises(ValueError, options, "managedActions", ["ken", "dash-word", ])
+
+
############################
# Test comparison operators
############################
@@ -4683,8 +5047,9 @@
"""
overrides = [ CommandOverride("one", "/one"), ]
hooks = [ PreActionHook("collect", "ls -l ") ]
- options1 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides, hooks, "ssh")
- options2 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides, hooks, "ssh")
+ managedActions = [ "collect", "purge", ]
+ options1 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides, hooks, "ssh", "cback", managedActions)
+ options2 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides, hooks, "ssh", "cback", managedActions)
self.failUnlessEqual(options1, options2)
self.failUnless(options1 == options2)
self.failUnless(not options1 < options2)
@@ -4713,8 +5078,9 @@
"""
overrides = [ CommandOverride("one", "/one"), ]
hooks = [ PreActionHook("collect", "ls -l ") ]
- options1 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides, hooks, "ssh")
- options2 = OptionsConfig("tuesday", "/tmp", "user", "group", "scp -1 -B", overrides, hooks, "ssh")
+ managedActions = [ "collect", "purge", ]
+ options1 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides, hooks, "ssh", "cback", managedActions)
+ options2 = OptionsConfig("tuesday", "/tmp", "user", "group", "scp -1 -B", overrides, hooks, "ssh", "cback", managedActions)
self.failIfEqual(options1, options2)
self.failUnless(not options1 == options2)
self.failUnless(options1 < options2)
@@ -4743,8 +5109,9 @@
"""
overrides = [ CommandOverride("one", "/one"), ]
hooks = [ PreActionHook("collect", "ls -l ") ]
- options1 = OptionsConfig("monday", "/tmp/whatever", "user", "group", "scp -1 -B", overrides, hooks, "ssh")
- options2 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides, hooks, "ssh")
+ managedActions = [ "collect", "purge", ]
+ options1 = OptionsConfig("monday", "/tmp/whatever", "user", "group", "scp -1 -B", overrides, hooks, "ssh", "cback", managedActions)
+ options2 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides, hooks, "ssh", "cback", managedActions)
self.failIfEqual(options1, options2)
self.failUnless(not options1 == options2)
self.failUnless(not options1 < options2)
@@ -4773,8 +5140,9 @@
"""
overrides = [ CommandOverride("one", "/one"), ]
hooks = [ PreActionHook("collect", "ls -l ") ]
- options1 = OptionsConfig("monday", "/tmp", "user2", "group", "scp -1 -B", overrides, hooks, "ssh")
- options2 = OptionsConfig("monday", "/tmp", "user1", "group", "scp -1 -B", overrides, hooks, "ssh")
+ managedActions = [ "collect", "purge", ]
+ options1 = OptionsConfig("monday", "/tmp", "user2", "group", "scp -1 -B", overrides, hooks, "ssh", "cback", managedActions)
+ options2 = OptionsConfig("monday", "/tmp", "user1", "group", "scp -1 -B", overrides, hooks, "ssh", "cback", managedActions)
self.failIfEqual(options1, options2)
self.failUnless(not options1 == options2)
self.failUnless(not options1 < options2)
@@ -4803,8 +5171,9 @@
"""
overrides = [ CommandOverride("one", "/one"), ]
hooks = [ PreActionHook("collect", "ls -l ") ]
- options1 = OptionsConfig("monday", "/tmp", "user", "group1", "scp -1 -B", overrides, hooks, "ssh")
- options2 = OptionsConfig("monday", "/tmp", "user", "group2", "scp -1 -B", overrides, hooks, "ssh")
+ managedActions = [ "collect", "purge", ]
+ options1 = OptionsConfig("monday", "/tmp", "user", "group1", "scp -1 -B", overrides, hooks, "ssh", "cback", managedActions)
+ options2 = OptionsConfig("monday", "/tmp", "user", "group2", "scp -1 -B", overrides, hooks, "ssh", "cback", managedActions)
self.failIfEqual(options1, options2)
self.failUnless(not options1 == options2)
self.failUnless(options1 < options2)
@@ -4833,8 +5202,9 @@
"""
overrides = [ CommandOverride("one", "/one"), ]
hooks = [ PreActionHook("collect", "ls -l ") ]
- options1 = OptionsConfig("monday", "/tmp", "user", "group", "scp -2 -B", overrides, hooks, "ssh")
- options2 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides, hooks, "ssh")
+ managedActions = [ "collect", "purge", ]
+ options1 = OptionsConfig("monday", "/tmp", "user", "group", "scp -2 -B", overrides, hooks, "ssh", "cback", managedActions)
+ options2 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides, hooks, "ssh", "cback", managedActions)
self.failIfEqual(options1, options2)
self.failUnless(not options1 == options2)
self.failUnless(not options1 < options2)
@@ -4851,8 +5221,9 @@
overrides1 = None
overrides2 = []
hooks = [ PreActionHook("collect", "ls -l ") ]
- options1 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides1, hooks, "ssh")
- options2 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides2, hooks, "ssh")
+ managedActions = [ "collect", "purge", ]
+ options1 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides1, hooks, "ssh", "cback", managedActions)
+ options2 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides2, hooks, "ssh", "cback", managedActions)
self.failIfEqual(options1, options2)
self.failUnless(not options1 == options2)
self.failUnless(options1 < options2)
@@ -4869,8 +5240,9 @@
overrides1 = None
overrides2 = [ CommandOverride("one", "/one"), ]
hooks = [ PreActionHook("collect", "ls -l ") ]
- options1 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides1, hooks, "ssh")
- options2 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides2, hooks, "ssh")
+ managedActions = [ "collect", "purge", ]
+ options1 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides1, hooks, "ssh", "cback", managedActions)
+ options2 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides2, hooks, "ssh", "cback", managedActions)
self.failIfEqual(options1, options2)
self.failUnless(not options1 == options2, "ssh")
self.failUnless(options1 < options2)
@@ -4887,8 +5259,9 @@
overrides1 = [ CommandOverride("one", "/one"), ]
overrides2 = []
hooks = [ PreActionHook("collect", "ls -l ") ]
- options1 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides1, hooks, "ssh")
- options2 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides2, hooks, "ssh")
+ managedActions = [ "collect", "purge", ]
+ options1 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides1, hooks, "ssh", "cback", managedActions)
+ options2 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides2, hooks, "ssh", "cback", managedActions)
self.failIfEqual(options1, options2)
self.failUnless(not options1 == options2)
self.failUnless(not options1 < options2)
@@ -4905,8 +5278,9 @@
overrides1 = [ CommandOverride("one", "/one"), ]
overrides2 = [ CommandOverride(), ]
hooks = [ PreActionHook("collect", "ls -l ") ]
- options1 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides1, hooks, "ssh")
- options2 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides2, hooks, "ssh")
+ managedActions = [ "collect", "purge", ]
+ options1 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides1, hooks, "ssh", "cback", managedActions)
+ options2 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides2, hooks, "ssh", "cback", managedActions)
self.failIfEqual(options1, options2)
self.failUnless(not options1 == options2)
self.failUnless(not options1 < options2)
@@ -4923,8 +5297,9 @@
overrides = [ CommandOverride("one", "/one"), ]
hooks1 = None
hooks2 = []
- options1 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides, hooks1, "ssh")
- options2 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides, hooks2, "ssh")
+ managedActions = [ "collect", "purge", ]
+ options1 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides, hooks1, "ssh", "cback", managedActions)
+ options2 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides, hooks2, "ssh", "cback", managedActions)
self.failIfEqual(options1, options2)
self.failUnless(not options1 == options2)
self.failUnless(options1 < options2)
@@ -4941,8 +5316,9 @@
overrides = [ CommandOverride("one", "/one"), ]
hooks1 = [ PreActionHook("collect", "ls -l ") ]
hooks2 = [ PostActionHook("collect", "ls -l ") ]
- options1 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides, hooks1, "ssh")
- options2 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides, hooks2, "ssh")
+ managedActions = [ "collect", "purge", ]
+ options1 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides, hooks1, "ssh", "cback", managedActions)
+ options2 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides, hooks2, "ssh", "cback", managedActions)
self.failIfEqual(options1, options2)
self.failUnless(not options1 == options2)
self.failUnless(options1 > options2)
@@ -4959,8 +5335,9 @@
overrides = [ CommandOverride("one", "/one"), ]
hooks1 = [ PreActionHook("collect", "ls -l ") ]
hooks2 = [ PreActionHook("stage", "ls -l ") ]
- options1 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides, hooks1, "ssh")
- options2 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides, hooks2, "ssh")
+ managedActions = [ "collect", "purge", ]
+ options1 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides, hooks1, "ssh", "cback", managedActions)
+ options2 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides, hooks2, "ssh", "cback", managedActions)
self.failIfEqual(options1, options2)
self.failUnless(not options1 == options2)
self.failUnless(not options1 > options2)
@@ -4977,8 +5354,9 @@
overrides = [ CommandOverride("one", "/one"), ]
hooks1 = [ PreActionHook("collect", "ls -l ") ]
hooks2 = [ PostActionHook("collect", "ls -l ") ]
- options1 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides, hooks1, "ssh")
- options2 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides, hooks2, "ssh")
+ managedActions = [ "collect", "purge", ]
+ options1 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides, hooks1, "ssh", "cback", managedActions)
+ options2 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides, hooks2, "ssh", "cback", managedActions)
self.failIfEqual(options1, options2)
self.failUnless(not options1 == options2)
self.failUnless(not options1 < options2)
@@ -5007,8 +5385,9 @@
"""
overrides = [ CommandOverride("one", "/one"), ]
hooks = [ PreActionHook("collect", "ls -l ") ]
- options1 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides, hooks, "ssh2")
- options2 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides, hooks, "ssh1")
+ managedActions = [ "collect", "purge", ]
+ options1 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides, hooks, "ssh2", "cback", managedActions)
+ options2 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides, hooks, "ssh1", "cback", managedActions)
self.failIfEqual(options1, options2)
self.failUnless(not options1 == options2)
self.failUnless(not options1 < options2)
@@ -5017,7 +5396,114 @@
self.failUnless(options1 >= options2)
self.failUnless(options1 != options2)
+ def testComparison_023(self):
+ """
+ Test comparison of two differing objects, cbackCommand differs (one None).
+ """
+ options1 = OptionsConfig()
+ options2 = OptionsConfig(rshCommand="command")
+ self.failIfEqual(options1, options2)
+ self.failUnless(not options1 == options2)
+ self.failUnless(options1 < options2)
+ self.failUnless(options1 <= options2)
+ self.failUnless(not options1 > options2)
+ self.failUnless(not options1 >= options2)
+ self.failUnless(options1 != options2)
+ def testComparison_024(self):
+ """
+ Test comparison of two differing objects, cbackCommand differs.
+ """
+ overrides = [ CommandOverride("one", "/one"), ]
+ hooks = [ PreActionHook("collect", "ls -l ") ]
+ managedActions = [ "collect", "purge", ]
+ options1 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides, hooks, "ssh", "cback1", managedActions)
+ options2 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides, hooks, "ssh", "cback2", managedActions)
+ self.failIfEqual(options1, options2)
+ self.failUnless(not options1 == options2)
+ self.failUnless(options1 < options2)
+ self.failUnless(options1 <= options2)
+ self.failUnless(not options1 > options2)
+ self.failUnless(not options1 >= options2)
+ self.failUnless(options1 != options2)
+
+ def testComparison_025(self):
+ """
+ Test comparison of two differing objects, managedActions differs (one
+ None, one empty).
+ """
+ overrides = [ CommandOverride("one", "/one"), ]
+ hooks = [ PreActionHook("collect", "ls -l ") ]
+ managedActions1 = None
+ managedActions2 = []
+ options1 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides, hooks, "ssh", "cback", managedActions1)
+ options2 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides, hooks, "ssh", "cback", managedActions2)
+ self.failIfEqual(options1, options2)
+ self.failUnless(not options1 == options2)
+ self.failUnless(options1 < options2)
+ self.failUnless(options1 <= options2)
+ self.failUnless(not options1 > options2)
+ self.failUnless(not options1 >= options2)
+ self.failUnless(options1 != options2)
+
+ def testComparison_026(self):
+ """
+ Test comparison of two differing objects, managedActions differs (one
+ None, one not empty).
+ """
+ overrides = [ CommandOverride("one", "/one"), ]
+ hooks = [ PreActionHook("collect", "ls -l ") ]
+ managedActions1 = None
+ managedActions2 = [ "collect", ]
+ options1 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides, hooks, "ssh", "cback", managedActions1)
+ options2 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides, hooks, "ssh", "cback", managedActions2)
+ self.failIfEqual(options1, options2)
+ self.failUnless(not options1 == options2)
+ self.failUnless(not options1 > options2)
+ self.failUnless(not options1 >= options2)
+ self.failUnless(options1 < options2)
+ self.failUnless(options1 <= options2)
+ self.failUnless(options1 != options2)
+
+ def testComparison_027(self):
+ """
+ Test comparison of two differing objects, managedActions differs (one
+ empty, one not empty).
+ """
+ overrides = [ CommandOverride("one", "/one"), ]
+ hooks = [ PreActionHook("collect", "ls -l ") ]
+ managedActions1 = []
+ managedActions2 = [ "collect", ]
+ options1 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides, hooks, "ssh", "cback", managedActions1)
+ options2 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides, hooks, "ssh", "cback", managedActions2)
+ self.failIfEqual(options1, options2)
+ self.failUnless(not options1 == options2)
+ self.failUnless(not options1 > options2)
+ self.failUnless(not options1 >= options2)
+ self.failUnless(options1 < options2)
+ self.failUnless(options1 <= options2)
+ self.failUnless(options1 != options2)
+
+ def testComparison_028(self):
+ """
+ Test comparison of two differing objects, managedActions differs (both
+ not empty).
+ """
+ overrides = [ CommandOverride("one", "/one"), ]
+ hooks = [ PreActionHook("collect", "ls -l ") ]
+ managedActions1 = [ "collect", ]
+ managedActions2 = [ "purge", ]
+ options1 = OptionsConfig("monday", "/tmp", "user", "group", "scp -1 -B", overrides, hooks, ...
[truncated message content] |