def __init__(self, backup_name, logger, ssh_config=None, ssh_to=None, readonly=False, description="", debug_output=False, thinner=Thinner()): self.backup_name = backup_name if not description and ssh_to: self.description = ssh_to else: self.description = description self.logger = logger if ssh_config: self.verbose("Using custom SSH config: {}".format(ssh_config)) if ssh_to: self.verbose("Datasets on: {}".format(ssh_to)) else: self.verbose("Datasets are local") rules = thinner.human_rules() if rules: for rule in rules: self.verbose(rule) else: self.verbose("Keep no old snaphots") self.thinner = thinner # list of ZfsPools self.__pools = {} self._progress_total_bytes = 0 self._progress_start_time = time.time() ExecuteNode.__init__(self, ssh_config=ssh_config, ssh_to=ssh_to, readonly=readonly, debug_output=debug_output)
def test_readonly(self): node = ExecuteNode(debug_output=True, readonly=True) self.assertEqual(node.run(["echo", "test"], readonly=False), []) self.assertEqual(node.run(["echo", "test"], readonly=True), ["test"])
def test_basics_remote(self): node = ExecuteNode(ssh_to="localhost", debug_output=True) self.basics(node)
def test_basics_local(self): node = ExecuteNode(debug_output=True) self.basics(node)
def test_pipe_remote_local(self): nodea = ExecuteNode(ssh_to="localhost", debug_output=True) nodeb = ExecuteNode(debug_output=True) self.pipe(nodea, nodeb)
def test_pipe_local_local(self): nodea = ExecuteNode(debug_output=True) nodeb = ExecuteNode(debug_output=True) self.pipe(nodea, nodeb)