예제 #1
0
 def blockdev_backup(self):
     assert len(
         self.target_disks) >= len(
         self.source_disks), "No enough target disks define in cfg!"
     source_lst = list(map(lambda x: "drive_%s" % x, self.source_disks))
     target_lst = list(map(lambda x: "drive_%s" % x, self.target_disks))
     bitmap_lst = list(map(lambda x: "bitmap_%s" %
                           x, range(len(self.source_disks))))
     try:
         if len(source_lst) > 1:
             error_context.context(
                 "backup %s to %s, options: %s" %
                 (source_lst, target_lst, self.backup_options))
             backup_utils.blockdev_batch_backup(
                 self.main_vm, source_lst, target_lst, bitmap_lst, **self.backup_options)
         else:
             error_context.context(
                 "backup %s to %s, options: %s" %
                 (source_lst[0], target_lst[0], self.backup_options))
             backup_utils.blockdev_backup(
                 self.main_vm,
                 source_lst[0],
                 target_lst[0],
                 **self.backup_options)
     finally:
         memory.drop_caches()
예제 #2
0
 def do_incremental_backup(self):
     extra_options = {'sync': self.sync_mode, 'auto_disable_bitmap': False}
     if self.sync_mode != "top":
         extra_options["bitmap-mode"] = self.bitmap_mode
     backup_utils.blockdev_batch_backup(self.main_vm, self.source_images,
                                        self.inc_backups, self.bitmaps,
                                        **extra_options)
 def do_full_backup(self):
     extra_options = {"sync": "full", "auto_disable_bitmap": False}
     backup_utils.blockdev_batch_backup(
         self.main_vm,
         self.source_images,
         self.full_backups,
         self.bitmaps,
         **extra_options)
예제 #4
0
 def _do_backup(self, backup_nodes, bitmaps):
     extra_options = {"sync": "none", "wait_job_complete": False}
     backup_utils.blockdev_batch_backup(self.main_vm, self.source_images,
                                        backup_nodes, bitmaps,
                                        **extra_options)
     self.backup_jobs = [
         job['id'] for job in job_utils.query_jobs(self.main_vm)
     ]
예제 #5
0
 def do_incremental_backup(self):
     extra_options = {
         "sync": self.inc_sync_mode,
         "bitmap-mode": self.inc_bitmap_mode,
         "auto_disable_bitmap": False
     }
     backup_utils.blockdev_batch_backup(self.main_vm, self.source_images,
                                        self.inc_backups, self.bitmaps,
                                        **extra_options)
예제 #6
0
 def do_full_backup(self):
     extra_options = {"sync": "full", "auto_disable_bitmap": False}
     if self.params.get('auto_dismiss') == 'no':
         extra_options['auto_dismiss'] = False
         extra_options['auto_finalize'] = False
     granularity = self.get_granularity()
     if granularity is not None:
         extra_options['granularity'] = granularity
         logging.info("bitmap granularity is '%s' " % granularity)
     backup_utils.blockdev_batch_backup(self.main_vm, self.source_images,
                                        self.full_backups, self.bitmaps,
                                        **extra_options)
 def do_incremental_backup(self):
     extra_options = {
         "sync": "none",
         "disabled_bitmaps": self.disabled_bitmaps,
         "wait_job_complete": False
     }
     backup_utils.blockdev_batch_backup(self.main_vm, self.source_images,
                                        self.inc_backups,
                                        self.inc_backup_bitmaps,
                                        **extra_options)
     self.backup_jobs = [
         job['id'] for job in job_utils.query_jobs(self.main_vm)
     ]
예제 #8
0
 def do_increamental_backup(self):
     extra_options = {'sync': 'incremental', 'auto_disable_bitmap': False}
     if self.params.get("completion_mode") == 'grouped':
         extra_options['completion_mode'] = 'grouped'
     if self.params.get('negative_test') == 'yes':
         try:
             backup_utils.blockdev_batch_backup(self.main_vm,
                                                self.source_images,
                                                self.inc_backups,
                                                self.bitmaps,
                                                **extra_options)
         except AssertionError:
             return
         self.test.fail('expect incremental backup job(s) failed')
     else:
         backup_utils.blockdev_batch_backup(self.main_vm,
                                            self.source_images,
                                            self.inc_backups, self.bitmaps,
                                            **extra_options)
예제 #9
0
 def do_increamental_backup(self):
     extra_options = {'sync': 'incremental', 'auto_disable_bitmap': False}
     if self.params.get("completion_mode") == 'grouped':
         extra_options['completion_mode'] = 'grouped'
     if self.params.get('negative_test') == 'yes':
         extra_options['wait_job_complete'] = False
         # Unwrap blockdev_batch_backup to catch the exception
         backup_func = backup_utils.blockdev_batch_backup.__wrapped__
         try:
             backup_func(self.main_vm, self.source_images, self.inc_backups,
                         self.bitmaps, **extra_options)
         except qemu_monitor.QMPCmdError as e:
             if self.params['error_msg'] not in str(e):
                 self.test.fail('Unexpect error: %s' % str(e))
         else:
             self.test.fail('expect incremental backup job(s) failed')
     else:
         backup_utils.blockdev_batch_backup(self.main_vm,
                                            self.source_images,
                                            self.inc_backups, self.bitmaps,
                                            **extra_options)
 def do_incremental_backup(self):
     extra_options = {"sync": "incremental"}
     blockdev_batch_backup(self.main_vm, self._snapshot_nodes,
                           self._inc_bk_nodes, self._merged_bitmaps,
                           **extra_options)
 def do_incremental_backup(self):
     """incremental backup: data->inc"""
     extra_options = {"sync": "incremental"}
     backup_utils.blockdev_batch_backup(self.main_vm, self._source_nodes,
                                        self._inc_bk_nodes, self._bitmaps,
                                        **extra_options)
 def do_full_backup(self):
     """full backup: data->base"""
     extra_options = {"sync": "full"}
     backup_utils.blockdev_batch_backup(self.main_vm, self._source_nodes,
                                        self._full_bk_nodes, self._bitmaps,
                                        **extra_options)
 def do_full_backup(self):
     blockdev_batch_backup(self.main_vm, self._source_nodes,
                           self._full_bk_nodes, None,
                           **self._full_backup_options)