Ejemplo n.º 1
0
 def _send_progress_end(self, context, backup, object_meta):
     object_meta['backup_percent'] = 100
     volume_utils.notify_about_backup_usage(context,
                                            backup,
                                            "createprogress",
                                            extra_usage_info=
                                            object_meta)
Ejemplo n.º 2
0
 def _send_progress_notification(self, context, backup, object_meta,
                                 total_block_sent_num, total_volume_size):
     backup_percent = total_block_sent_num * 100 / total_volume_size
     object_meta['backup_percent'] = backup_percent
     volume_utils.notify_about_backup_usage(context,
                                            backup,
                                            "createprogress",
                                            extra_usage_info=object_meta)
Ejemplo n.º 3
0
 def _notify_about_backup_usage(self,
                                context,
                                backup,
                                event_suffix,
                                extra_usage_info=None):
     volume_utils.notify_about_backup_usage(
         context, backup, event_suffix,
         extra_usage_info=extra_usage_info,
         host=self.host)
Ejemplo n.º 4
0
    def reset_status(self, context, backup, status):
        """Reset volume backup status.

        :param context: running context
        :param backup: The backup object for reset status operation
        :param status: The status to be set
        :raises InvalidBackup:
        :raises AttributeError:
        """
        LOG.info(
            'Reset backup status started, backup_id: '
            '%(backup_id)s, status: %(status)s.', {
                'backup_id': backup.id,
                'status': status
            })

        LOG.info('Backup service: %s.', backup.service)
        if not self._is_our_backup(backup):
            err = _('Reset backup status aborted, the backup service'
                    ' currently configured [%(configured_service)s] '
                    'is not the backup service that was used to create'
                    ' this backup [%(backup_service)s].') % \
                {'configured_service': self.driver_name,
                 'backup_service': backup.service}
            raise exception.InvalidBackup(reason=err)

        if backup.service is not None:
            backup.status = status
            backup.save()

            # Needs to clean temporary volumes and snapshots.
            try:
                self._cleanup_temp_volumes_snapshots_for_one_backup(
                    context, backup)
            except Exception:
                LOG.exception(
                    "Problem cleaning temp volumes and "
                    "snapshots for backup %(bkup)s.", {'bkup': backup.id})

            # send notification to ceilometer
            notifier_info = {'id': backup.id, 'update': {'status': status}}
            notifier = rpc.get_notifier('backupStatusUpdate')
            notifier.info(context, "backups.reset_status.end", notifier_info)
            volume_utils.notify_about_backup_usage(context, backup,
                                                   'reset_status.end')
Ejemplo n.º 5
0
 def _notify_reset_status(self, context, id, message):
     backup = objects.Backup.get_by_id(context, id)
     volume_utils.notify_about_backup_usage(context, backup, message)