Exemple #1
0
    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)