def test_backup_get_all_active_by_window(self):
        # Find all backups valid within a timeframe window.
        db.volume_create(self.context, {'id': fake.VOLUME_ID})
        for i in range(5):
            self.db_back_attrs[i]['volume_id'] = fake.VOLUME_ID

        # Not in window
        db.backup_create(self.ctx, self.db_back_attrs[0])

        # In - deleted in window
        db.backup_create(self.ctx, self.db_back_attrs[1])

        # In - deleted after window
        db.backup_create(self.ctx, self.db_back_attrs[2])

        # In - created in window
        db.backup_create(self.ctx, self.db_back_attrs[3])

        # Not of window
        db.backup_create(self.ctx, self.db_back_attrs[4])

        backups = db.backup_get_all_active_by_window(
            self.context,
            datetime.datetime(1, 3, 1, 1, 1, 1),
            datetime.datetime(1, 4, 1, 1, 1, 1),
            project_id=fake.PROJECT_ID
        )
        self.assertEqual(3, len(backups))
        self.assertEqual(fake.BACKUP2_ID, backups[0].id)
        self.assertEqual(fake.BACKUP3_ID, backups[1].id)
        self.assertEqual(fake.BACKUP4_ID, backups[2].id)
    def test_backup_get_all_active_by_window(self):
        # Find all backups valid within a timeframe window.
        db.volume_create(self.context, {
            'id': fake.VOLUME_ID,
            'volume_type_id': fake.VOLUME_TYPE_ID
        })
        for i in range(5):
            self.db_back_attrs[i]['volume_id'] = fake.VOLUME_ID

        # Not in window
        db.backup_create(self.ctx, self.db_back_attrs[0])

        # In - deleted in window
        db.backup_create(self.ctx, self.db_back_attrs[1])

        # In - deleted after window
        db.backup_create(self.ctx, self.db_back_attrs[2])

        # In - created in window
        db.backup_create(self.ctx, self.db_back_attrs[3])

        # Not of window
        db.backup_create(self.ctx, self.db_back_attrs[4])

        backups = db.backup_get_all_active_by_window(
            self.context,
            datetime.datetime(1, 3, 1, 1, 1, 1),
            datetime.datetime(1, 4, 1, 1, 1, 1),
            project_id=fake.PROJECT_ID)
        self.assertEqual(3, len(backups))
        self.assertEqual(fake.BACKUP2_ID, backups[0].id)
        self.assertEqual(fake.BACKUP3_ID, backups[1].id)
        self.assertEqual(fake.BACKUP4_ID, backups[2].id)
Exemple #3
0
    def test_check_for_setup_error(self, _mock_get_version, vgs):
        vg_obj = fake_lvm.FakeBrickLVM('cinder-volumes', False, None, 'auto')

        configuration = conf.Configuration(fake_opt, 'fake_group')
        lvm_driver = lvm.LVMVolumeDriver(configuration=configuration,
                                         vg_obj=vg_obj,
                                         db=db)

        lvm_driver.delete_snapshot = mock.Mock()

        volume = tests_utils.create_volume(self.context,
                                           host=socket.gethostname())
        volume_id = volume['id']

        backup = {}
        backup['volume_id'] = volume_id
        backup['user_id'] = fake.USER_ID
        backup['project_id'] = fake.PROJECT_ID
        backup['host'] = socket.gethostname()
        backup['availability_zone'] = '1'
        backup['display_name'] = 'test_check_for_setup_error'
        backup['display_description'] = 'test_check_for_setup_error'
        backup['container'] = 'fake'
        backup['status'] = fields.BackupStatus.CREATING
        backup['fail_reason'] = ''
        backup['service'] = 'fake'
        backup['parent_id'] = None
        backup['size'] = 5 * 1024 * 1024
        backup['object_count'] = 22
        db.backup_create(self.context, backup)

        lvm_driver.check_for_setup_error()
Exemple #4
0
    def test_check_for_setup_error(self, vgs):
        vg_obj = fake_lvm.FakeBrickLVM('cinder-volumes',
                                       False,
                                       None,
                                       'default')

        configuration = conf.Configuration(fake_opt, 'fake_group')
        lvm_driver = lvm.LVMVolumeDriver(configuration=configuration,
                                         vg_obj=vg_obj, db=db)

        lvm_driver.delete_snapshot = mock.Mock()

        volume = tests_utils.create_volume(self.context,
                                           host=socket.gethostname())
        volume_id = volume['id']

        backup = {}
        backup['volume_id'] = volume_id
        backup['user_id'] = fake.USER_ID
        backup['project_id'] = fake.PROJECT_ID
        backup['host'] = socket.gethostname()
        backup['availability_zone'] = '1'
        backup['display_name'] = 'test_check_for_setup_error'
        backup['display_description'] = 'test_check_for_setup_error'
        backup['container'] = 'fake'
        backup['status'] = fields.BackupStatus.CREATING
        backup['fail_reason'] = ''
        backup['service'] = 'fake'
        backup['parent_id'] = None
        backup['size'] = 5 * 1024 * 1024
        backup['object_count'] = 22
        db.backup_create(self.context, backup)

        lvm_driver.check_for_setup_error()
Exemple #5
0
def create_backup(
    ctxt,
    volume_id,
    display_name="test_backup",
    display_description="This is a test backup",
    status="creating",
    parent_id=None,
    temp_volume_id=None,
    temp_snapshot_id=None,
):
    backup = {}
    backup["volume_id"] = volume_id
    backup["user_id"] = ctxt.user_id
    backup["project_id"] = ctxt.project_id
    backup["host"] = socket.gethostname()
    backup["availability_zone"] = "1"
    backup["display_name"] = display_name
    backup["display_description"] = display_description
    backup["container"] = "fake"
    backup["status"] = status
    backup["fail_reason"] = ""
    backup["service"] = "fake"
    backup["parent_id"] = parent_id
    backup["size"] = 5 * 1024 * 1024
    backup["object_count"] = 22
    backup["temp_volume_id"] = temp_volume_id
    backup["temp_snapshot_id"] = temp_snapshot_id
    return db.backup_create(ctxt, backup)
Exemple #6
0
    def test_backup_reset_status_to_available_invalid_backup(self):
        volume = db.volume_create(
            self.ctxt, {
                'status': 'available',
                'host': 'test',
                'provider_location': '',
                'size': 1
            })
        backup = db.backup_create(
            self.ctxt, {
                'status': 'error',
                'service': CONF.backup_driver,
                'volume_id': volume['id']
            })

        backup_driver = self.backup_mgr.service.get_backup_driver(self.ctxt)
        _mock_backup_verify_class = (
            '%s.%s.%s' % (backup_driver.__module__,
                          backup_driver.__class__.__name__, 'verify'))
        with mock.patch(_mock_backup_verify_class) as \
                _mock_record_verify:
            _mock_record_verify.side_effect = \
                exception.BackupVerifyUnsupportedDriver(reason='fake')

            self.assertRaises(exception.BackupVerifyUnsupportedDriver,
                              self.backup_mgr.reset_status, self.ctxt,
                              backup['id'], 'available')
            backup = db.backup_get(self.ctxt, backup['id'])
            self.assertEqual(backup['status'], 'error')
    def _create_backup_db_entry(
        self,
        volume_id=_DEFAULT_VOLUME_ID,
        container="test-container",
        backup_id=fake.BACKUP_ID,
        parent_id=None,
        service_metadata=None,
    ):

        try:
            db.volume_get(self.ctxt, volume_id)
        except exception.NotFound:
            self._create_volume_db_entry(volume_id=volume_id)

        backup = {
            "id": backup_id,
            "size": 1,
            "container": container,
            "volume_id": volume_id,
            "parent_id": parent_id,
            "user_id": fake.USER_ID,
            "project_id": fake.PROJECT_ID,
            "service_metadata": service_metadata,
        }
        return db.backup_create(self.ctxt, backup)["id"]
    def _create_backup_db_entry(
        self,
        volume_id=1,
        display_name="test_backup",
        display_description="this is a test backup",
        container="volumebackups",
        status="creating",
        size=1,
        object_count=0,
        project_id="fake",
    ):
        """Create a backup entry in the DB.

        Return the entry ID
        """
        backup = {}
        backup["volume_id"] = volume_id
        backup["user_id"] = "fake"
        backup["project_id"] = project_id
        backup["host"] = "testhost"
        backup["availability_zone"] = "1"
        backup["display_name"] = display_name
        backup["display_description"] = display_description
        backup["container"] = container
        backup["status"] = status
        backup["fail_reason"] = ""
        backup["service"] = CONF.backup_driver
        backup["snapshot"] = False
        backup["parent_id"] = None
        backup["size"] = size
        backup["object_count"] = object_count
        return db.backup_create(self.ctxt, backup)["id"]
    def test_backup_reset_status_to_available_invalid_backup(self):
        volume = db.volume_create(self.ctxt, {'status': 'available',
                                              'host': 'test',
                                              'provider_location': '',
                                              'size': 1})
        backup = db.backup_create(self.ctxt,
                                  {'status': 'error',
                                   'service':
                                   CONF.backup_driver,
                                   'volume_id': volume['id']})

        backup_driver = self.backup_mgr.service.get_backup_driver(self.ctxt)
        _mock_backup_verify_class = ('%s.%s.%s' %
                                     (backup_driver.__module__,
                                      backup_driver.__class__.__name__,
                                      'verify'))
        with mock.patch(_mock_backup_verify_class) as \
                _mock_record_verify:
            _mock_record_verify.side_effect = \
                exception.BackupVerifyUnsupportedDriver(reason='fake')

            self.assertRaises(exception.BackupVerifyUnsupportedDriver,
                              self.backup_mgr.reset_status,
                              self.ctxt,
                              backup['id'],
                              'available')
            backup = db.backup_get(self.ctxt, backup['id'])
            self.assertEqual(backup['status'], 'error')
Exemple #10
0
def create_backup(ctxt,
                  volume_id,
                  display_name='test_backup',
                  display_description='This is a test backup',
                  status=fields.BackupStatus.CREATING,
                  parent_id=None,
                  temp_volume_id=None,
                  temp_snapshot_id=None,
                  snapshot_id=None,
                  data_timestamp=None):
    backup = {}
    backup['volume_id'] = volume_id
    backup['user_id'] = ctxt.user_id
    backup['project_id'] = ctxt.project_id
    backup['host'] = socket.gethostname()
    backup['availability_zone'] = '1'
    backup['display_name'] = display_name
    backup['display_description'] = display_description
    backup['container'] = 'fake'
    backup['status'] = status
    backup['fail_reason'] = ''
    backup['service'] = 'fake'
    backup['parent_id'] = parent_id
    backup['size'] = 5 * 1024 * 1024
    backup['object_count'] = 22
    backup['temp_volume_id'] = temp_volume_id
    backup['temp_snapshot_id'] = temp_snapshot_id
    backup['snapshot_id'] = snapshot_id
    backup['data_timestamp'] = data_timestamp
    return db.backup_create(ctxt, backup)
Exemple #11
0
def create_backup(ctxt,
                  volume_id,
                  display_name='test_backup',
                  display_description='This is a test backup',
                  status=fields.BackupStatus.CREATING,
                  parent_id=None,
                  temp_volume_id=None,
                  temp_snapshot_id=None,
                  snapshot_id=None,
                  data_timestamp=None):
    backup = {}
    backup['volume_id'] = volume_id
    backup['user_id'] = ctxt.user_id
    backup['project_id'] = ctxt.project_id
    backup['host'] = socket.gethostname()
    backup['availability_zone'] = '1'
    backup['display_name'] = display_name
    backup['display_description'] = display_description
    backup['container'] = 'fake'
    backup['status'] = status
    backup['fail_reason'] = ''
    backup['service'] = 'fake'
    backup['parent_id'] = parent_id
    backup['size'] = 5 * 1024 * 1024
    backup['object_count'] = 22
    backup['temp_volume_id'] = temp_volume_id
    backup['temp_snapshot_id'] = temp_snapshot_id
    backup['snapshot_id'] = snapshot_id
    backup['data_timestamp'] = data_timestamp
    return db.backup_create(ctxt, backup)
Exemple #12
0
    def _create_backup_db_entry(self, volume_id=1, display_name='test_backup',
                                display_description='this is a test backup',
                                container='volumebackups',
                                status='creating',
                                size=0,
                                object_count=0,
                                project_id='fake'):
        """Create a backup entry in the DB.

        Return the entry ID
        """
        backup = {}
        backup['volume_id'] = volume_id
        backup['user_id'] = 'fake'
        backup['project_id'] = project_id
        backup['host'] = 'testhost'
        backup['availability_zone'] = '1'
        backup['display_name'] = display_name
        backup['display_description'] = display_description
        backup['container'] = container
        backup['status'] = status
        backup['fail_reason'] = ''
        backup['service'] = CONF.backup_driver
        backup['size'] = size
        backup['object_count'] = object_count
        return db.backup_create(self.ctxt, backup)['id']
Exemple #13
0
    def create(self):
        if self.obj_attr_is_set("id"):
            raise exception.ObjectActionError(action="create", reason="already created")
        updates = self.cinder_obj_get_changes()

        db_backup = db.backup_create(self._context, updates)
        self._from_db_object(self._context, self, db_backup)
Exemple #14
0
 def _create_backup_db_entry(self, container='test-container',
                             backup_id=123, parent_id=None):
     backup = {'id': backup_id,
               'size': 1,
               'container': container,
               'volume_id': '1234-5678-1234-8888',
               'parent_id': parent_id}
     return db.backup_create(self.ctxt, backup)['id']
Exemple #15
0
    def create(self):
        if self.obj_attr_is_set('id'):
            raise exception.ObjectActionError(action='create',
                                              reason='already created')
        updates = self.cinder_obj_get_changes()

        db_backup = db.backup_create(self._context, updates)
        self._from_db_object(self._context, self, db_backup)
Exemple #16
0
    def create(self):
        if self.obj_attr_is_set('id'):
            raise exception.ObjectActionError(action='create',
                                              reason='already created')
        updates = self.obj_get_changes()

        db_backup = db.backup_create(self._context, updates)
        self._from_db_object(self._context, self, db_backup)
Exemple #17
0
 def _create_backup_db_entry(self, container='test-container',
                             backup_id=123, parent_id=None):
     backup = {'id': backup_id,
               'size': 1,
               'container': container,
               'volume_id': '1234-5678-1234-8888',
               'parent_id': parent_id}
     return db.backup_create(self.ctxt, backup)['id']
Exemple #18
0
 def _create_backup_db_entry(self, backup_id):
     backup = {
         'id': backup_id,
         'size': 1,
         'container': 'test-container',
         'volume_id': '1234-5678-1234-8888'
     }
     return db.backup_create(self.ctxt, backup)['id']
    def test_backup_reset_status(self):
        ctx = context.RequestContext("admin", "fake", True)
        volume = db.volume_create(ctx, {"status": "available", "host": "test", "provider_location": "", "size": 1})
        backup = db.backup_create(ctx, {"status": "available", "volume_id": volume["id"]})

        resp = self._issue_backup_reset(ctx, backup, {"status": "error"})

        self.assertEqual(resp.status_int, 202)
Exemple #20
0
 def test_backup_reset_status_as_non_admin(self):
     ctx = context.RequestContext('fake', 'fake')
     backup = db.backup_create(ctx, {'status': 'available',
                                     'size': 1,
                                     'volume_id': "fakeid"})
     resp = self._issue_backup_reset(ctx,
                                     backup,
                                     {'status': 'error'})
     # request is not authorized
     self.assertEqual(resp.status_int, 403)
Exemple #21
0
 def test_invalid_status_for_backup(self):
     ctx = context.RequestContext('admin', 'fake', True)
     volume = db.volume_create(ctx, {'status': 'available', 'host': 'test',
                                     'provider_location': '', 'size': 1})
     backup = db.backup_create(ctx, {'status': 'available',
                                     'volume_id': volume['id']})
     resp = self._issue_backup_reset(ctx,
                                     backup,
                                     {'status': 'restoring'})
     self.assertEqual(400, resp.status_int)
Exemple #22
0
 def test_invalid_status_for_backup(self):
     ctx = context.RequestContext('admin', 'fake', True)
     volume = db.volume_create(ctx, {'status': 'available', 'host': 'test',
                                     'provider_location': '', 'size': 1})
     backup = db.backup_create(ctx, {'status': 'available',
                                     'volume_id': volume['id']})
     resp = self._issue_backup_reset(ctx,
                                     backup,
                                     {'status': 'restoring'})
     self.assertEqual(resp.status_int, 400)
Exemple #23
0
 def test_backup_reset_status_as_non_admin(self):
     ctx = context.RequestContext('fake', 'fake')
     backup = db.backup_create(ctx, {
         'status': 'available',
         'size': 1,
         'volume_id': "fakeid"
     })
     resp = self._issue_backup_reset(ctx, backup, {'status': 'error'})
     # request is not authorized
     self.assertEqual(403, resp.status_int)
 def test_invalid_status_for_backup(self):
     volume = db.volume_create(self.ctx,
                               {'status': 'available', 'host': 'test',
                                'provider_location': '', 'size': 1})
     backup = db.backup_create(self.ctx, {'status': 'available',
                                          'volume_id': volume['id']})
     resp = self._issue_backup_reset(self.ctx,
                                     backup,
                                     {'status': 'restoring'})
     self.assertEqual(400, resp.status_int)
 def test_backup_reset_status_to_error(self):
     volume = db.volume_create(
         self.ctxt, {"status": "available", "host": "test", "provider_location": "", "size": 1}
     )
     backup = db.backup_create(
         self.ctxt, {"status": "creating", "service": CONF.backup_driver, "volume_id": volume["id"]}
     )
     self.backup_mgr.reset_status(self.ctxt, backup["id"], "error")
     backup = db.backup_get(self.ctxt, backup["id"])
     self.assertEqual(backup["status"], "error")
 def test_backup_reset_status_as_non_admin(self):
     ctx = context.RequestContext(fake.USER_ID, fake.PROJECT_ID)
     backup = db.backup_create(ctx, {'status': 'available',
                                     'size': 1,
                                     'volume_id': "fakeid",
                                     'host': 'test'})
     resp = self._issue_backup_reset(ctx,
                                     backup,
                                     {'status': fields.BackupStatus.ERROR})
     # request is not authorized
     self.assertEqual(403, resp.status_int)
 def test_backup_reset_status_as_non_admin(self):
     ctx = context.RequestContext(fake.USER_ID, fake.PROJECT_ID)
     backup = db.backup_create(ctx, {'status': 'available',
                                     'size': 1,
                                     'volume_id': "fakeid",
                                     'host': 'test'})
     resp = self._issue_backup_reset(ctx,
                                     backup,
                                     {'status': fields.BackupStatus.ERROR})
     # request is not authorized
     self.assertEqual(403, resp.status_int)
Exemple #28
0
 def _create_backup_db_entry(self, container="test-container", backup_id=123, parent_id=None):
     backup = {
         "id": backup_id,
         "size": 1,
         "container": container,
         "volume_id": "1234-5678-1234-8888",
         "parent_id": parent_id,
         "user_id": "user-id",
         "project_id": "project-id",
     }
     return db.backup_create(self.ctxt, backup)["id"]
    def test_backup_reset_status_as_admin(self):
        ctx = context.RequestContext("admin", "fake", True)
        volume = db.volume_create(ctx, {"status": "available", "user_id": "user", "project_id": "project"})
        backup = db.backup_create(
            ctx,
            {"status": "available", "size": 1, "volume_id": volume["id"], "user_id": "user", "project_id": "project"},
        )

        resp = self._issue_backup_reset(ctx, backup, {"status": "error"})

        self.assertEqual(202, resp.status_int)
    def _create_export_record_db_entry(self, volume_id="0000", status="creating", project_id="fake"):
        """Create a backup entry in the DB.

        Return the entry ID
        """
        backup = {}
        backup["volume_id"] = volume_id
        backup["user_id"] = "fake"
        backup["project_id"] = project_id
        backup["status"] = status
        return db.backup_create(self.ctxt, backup)["id"]
Exemple #31
0
    def test_backup_reset_status_as_admin(self):
        ctx = context.RequestContext('admin', 'fake', True)
        volume = db.volume_create(ctx, {'status': 'available'})
        backup = db.backup_create(ctx, {'status': 'available',
                                        'size': 1,
                                        'volume_id': volume['id']})

        resp = self._issue_backup_reset(ctx,
                                        backup,
                                        {'status': 'error'})

        self.assertEqual(resp.status_int, 202)
    def test_backup_reset_status_with_invalid_backup(self):
        ctx = context.RequestContext("admin", "fake", True)
        volume = db.volume_create(ctx, {"status": "available", "host": "test", "provider_location": "", "size": 1})
        backup = db.backup_create(
            ctx, {"status": "available", "volume_id": volume["id"], "user_id": "user", "project_id": "project"}
        )

        backup["id"] = "fake_id"
        resp = self._issue_backup_reset(ctx, backup, {"status": "error"})

        # Should raise 404 if backup doesn't exist.
        self.assertEqual(404, resp.status_int)
Exemple #33
0
    def test_backup_reset_status_as_admin(self):
        ctx = context.RequestContext('admin', 'fake', True)
        volume = db.volume_create(ctx, {'status': 'available'})
        backup = db.backup_create(ctx, {'status': 'available',
                                        'size': 1,
                                        'volume_id': volume['id']})

        resp = self._issue_backup_reset(ctx,
                                        backup,
                                        {'status': 'error'})

        self.assertEqual(resp.status_int, 202)
Exemple #34
0
 def _create_backup_db_entry(self, backup_id, mode):
     if mode == 'file':
         backup_path = VOLUME_PATH
     else:
         backup_path = '/dev/backup-%s' % backup_id
     service_metadata = json.dumps({'backup_mode': mode,
                                    'backup_path': backup_path})
     backup = {'id': backup_id,
               'size': 1,
               'container': 'test-container',
               'volume_id': '1234-5678-1234-8888',
               'service_metadata': service_metadata}
     return db.backup_create(self.ctxt, backup)['id']
Exemple #35
0
 def _create_backup_db_entry(self, backup_id, mode):
     if mode == 'file':
         backup_path = VOLUME_PATH
     else:
         backup_path = '/dev/backup-%s' % backup_id
     service_metadata = json.dumps({'backup_mode': mode,
                                    'backup_path': backup_path})
     backup = {'id': backup_id,
               'size': 1,
               'container': 'test-container',
               'volume_id': '1234-5678-1234-8888',
               'service_metadata': service_metadata}
     return db.backup_create(self.ctxt, backup)['id']
Exemple #36
0
    def _create_export_record_db_entry(self,
                                       volume_id='0000',
                                       status='creating',
                                       project_id='fake'):
        """Create a backup entry in the DB.

        Return the entry ID
        """
        backup = {}
        backup['volume_id'] = volume_id
        backup['user_id'] = 'fake'
        backup['project_id'] = project_id
        backup['status'] = status
        return db.backup_create(self.ctxt, backup)['id']
    def _create_export_record_db_entry(self,
                                       volume_id='0000',
                                       status='creating',
                                       project_id='fake'):
        """Create a backup entry in the DB.

        Return the entry ID
        """
        backup = {}
        backup['volume_id'] = volume_id
        backup['user_id'] = 'fake'
        backup['project_id'] = project_id
        backup['status'] = status
        return db.backup_create(self.ctxt, backup)['id']
 def _create_backup_db_entry(self,
                             backupid,
                             volid,
                             size,
                             userid=fake.USER_ID,
                             projectid=fake.PROJECT_ID):
     backup = {
         'id': backupid,
         'size': size,
         'volume_id': volid,
         'user_id': userid,
         'project_id': projectid
     }
     return db.backup_create(self.ctxt, backup)['id']
Exemple #39
0
    def test_backup_reset_status(self):
        ctx = context.RequestContext('admin', 'fake', True)
        volume = db.volume_create(ctx, {'status': 'available', 'host': 'test',
                                        'provider_location': '', 'size': 1})
        backup = db.backup_create(ctx, {'status': 'available',
                                        'volume_id': volume['id'],
                                        'user_id': 'user',
                                        'project_id': 'project'})

        resp = self._issue_backup_reset(ctx,
                                        backup,
                                        {'status': 'error'})

        self.assertEqual(202, resp.status_int)
 def _create_backup_db_entry(self,
                             backupid,
                             volid,
                             size,
                             userid=str(uuid.uuid4()),
                             projectid=str(uuid.uuid4())):
     backup = {
         'id': backupid,
         'size': size,
         'volume_id': volid,
         'user_id': userid,
         'project_id': projectid
     }
     return db.backup_create(self.ctxt, backup)['id']
    def test_backup_reset_status_as_admin(self):
        volume = db.volume_create(self.ctx, {'status': 'available',
                                             'user_id': 'user',
                                             'project_id': 'project'})
        backup = db.backup_create(self.ctx, {'status': 'available',
                                             'size': 1,
                                             'volume_id': volume['id'],
                                             'user_id': 'user',
                                             'project_id': 'project'})

        resp = self._issue_backup_reset(self.ctx,
                                        backup,
                                        {'status': 'error'})

        self.assertEqual(202, resp.status_int)
Exemple #42
0
    def test_backup_reset_status(self):
        volume = db.volume_create(self.ctx,
                                  {'status': 'available', 'host': 'test',
                                   'provider_location': '', 'size': 1})
        backup = db.backup_create(self.ctx,
                                  {'status': fields.BackupStatus.AVAILABLE,
                                   'volume_id': volume['id'],
                                   'user_id': 'user',
                                   'project_id': 'project'})

        resp = self._issue_backup_reset(self.ctx,
                                        backup,
                                        {'status': fields.BackupStatus.ERROR})

        self.assertEqual(202, resp.status_int)
Exemple #43
0
 def _create_backup_db_entry(self,
                             container='test-container',
                             backup_id=123,
                             parent_id=None,
                             service_metadata=None):
     backup = {
         'id': backup_id,
         'size': 1,
         'container': container,
         'volume_id': '1234-5678-1234-8888',
         'parent_id': parent_id,
         'user_id': 'user-id',
         'project_id': 'project-id',
         'service_metadata': service_metadata,
     }
     return db.backup_create(self.ctxt, backup)['id']
 def _create_backup_db_entry(self, backup_id, mode):
     if mode == "file":
         backup_path = VOLUME_PATH
     else:
         backup_path = "/dev/backup-%s" % backup_id
     service_metadata = json.dumps({"backup_mode": mode, "backup_path": backup_path})
     backup = {
         "id": backup_id,
         "size": 1,
         "container": "test-container",
         "volume_id": fake.volume_id,
         "service_metadata": service_metadata,
         "user_id": fake.user_id,
         "project_id": fake.project_id,
     }
     return db.backup_create(self.ctxt, backup)["id"]
Exemple #45
0
    def test_backup_reset_status_with_invalid_backup(self):
        ctx = context.RequestContext('admin', 'fake', True)
        volume = db.volume_create(ctx, {'status': 'available', 'host': 'test',
                                        'provider_location': '', 'size': 1})
        backup = db.backup_create(ctx, {'status': 'available',
                                        'volume_id': volume['id'],
                                        'user_id': 'user',
                                        'project_id': 'project'})

        backup['id'] = 'fake_id'
        resp = self._issue_backup_reset(ctx,
                                        backup,
                                        {'status': 'error'})

        # Should raise 404 if backup doesn't exist.
        self.assertEqual(404, resp.status_int)
 def test_backup_reset_status_to_error(self):
     volume = db.volume_create(self.ctxt,
                               {'status': 'available',
                                'host': 'test',
                                'provider_location': '',
                                'size': 1})
     backup = db.backup_create(self.ctxt,
                               {'status': 'creating',
                                'service':
                                CONF.backup_driver,
                                'volume_id': volume['id']})
     self.backup_mgr.reset_status(self.ctxt,
                                  backup['id'],
                                  'error')
     backup = db.backup_get(self.ctxt, backup['id'])
     self.assertEqual(backup['status'], 'error')
Exemple #47
0
 def _create_backup_db_entry(self, backup_id, mode):
     if mode == 'file':
         backup_path = VOLUME_PATH
     else:
         backup_path = '/dev/backup-%s' % backup_id
     service_metadata = json.dumps({'backup_mode': mode,
                                    'backup_path': backup_path})
     backup = {'id': backup_id,
               'size': 1,
               'container': 'test-container',
               'volume_id': fake.VOLUME_ID,
               'service_metadata': service_metadata,
               'user_id': fake.USER_ID,
               'project_id': fake.PROJECT_ID,
               }
     return db.backup_create(self.ctxt, backup)['id']
    def test_backup_reset_status_as_admin(self):
        volume = db.volume_create(self.ctx, {'status': 'available',
                                             'user_id': fake.USER_ID,
                                             'project_id': fake.PROJECT_ID})
        backup = db.backup_create(self.ctx,
                                  {'status': fields.BackupStatus.AVAILABLE,
                                   'size': 1,
                                   'volume_id': volume['id'],
                                   'user_id': fake.USER_ID,
                                   'project_id': fake.PROJECT_ID,
                                   'host': 'test'})

        resp = self._issue_backup_reset(self.ctx,
                                        backup,
                                        {'status': fields.BackupStatus.ERROR})

        self.assertEqual(202, resp.status_int)
    def test_backup_reset_status_with_invalid_backup(self):
        volume = db.volume_create(self.ctx,
                                  {'status': 'available', 'host': 'test',
                                   'provider_location': '', 'size': 1})
        backup = db.backup_create(self.ctx,
                                  {'status': fields.BackupStatus.AVAILABLE,
                                   'volume_id': volume['id'],
                                   'user_id': fake.USER_ID,
                                   'project_id': fake.PROJECT_ID})

        backup['id'] = fake.BACKUP_ID
        resp = self._issue_backup_reset(self.ctx,
                                        backup,
                                        {'status': fields.BackupStatus.ERROR})

        # Should raise 404 if backup doesn't exist.
        self.assertEqual(404, resp.status_int)
Exemple #50
0
 def test_backup_reset_status_to_error(self):
     volume = db.volume_create(
         self.ctxt, {
             'status': 'available',
             'host': 'test',
             'provider_location': '',
             'size': 1
         })
     backup = db.backup_create(
         self.ctxt, {
             'status': 'creating',
             'service': CONF.backup_driver,
             'volume_id': volume['id']
         })
     self.backup_mgr.reset_status(self.ctxt, backup['id'], 'error')
     backup = db.backup_get(self.ctxt, backup['id'])
     self.assertEqual(backup['status'], 'error')
    def test_backup_reset_status_as_admin(self):
        volume = db.volume_create(self.ctx, {
            'status': 'available',
            'user_id': 'user',
            'project_id': 'project'
        })
        backup = db.backup_create(
            self.ctx, {
                'status': 'available',
                'size': 1,
                'volume_id': volume['id'],
                'user_id': 'user',
                'project_id': 'project'
            })

        resp = self._issue_backup_reset(self.ctx, backup, {'status': 'error'})

        self.assertEqual(202, resp.status_int)
Exemple #52
0
    def _create_backup_db_entry(self,
                                volume_id=_DEFAULT_VOLUME_ID,
                                container='test-container',
                                backup_id=fake.backup_id,
                                parent_id=None):

        try:
            db.volume_get(self.ctxt, volume_id)
        except exception.NotFound:
            self._create_volume_db_entry(volume_id=volume_id)

        backup = {'id': backup_id,
                  'size': 1,
                  'container': container,
                  'volume_id': volume_id,
                  'parent_id': parent_id,
                  'user_id': fake.user_id,
                  'project_id': fake.project_id,
                  }
        return db.backup_create(self.ctxt, backup)['id']
Exemple #53
0
    def _create_backup_db_entry(self,
                                volume_id=_DEFAULT_VOLUME_ID,
                                container='test-container',
                                backup_id=fake.BACKUP_ID, parent_id=None,
                                service_metadata=None):

        try:
            db.volume_get(self.ctxt, volume_id)
        except exception.NotFound:
            self._create_volume_db_entry(volume_id=volume_id)

        backup = {'id': backup_id,
                  'size': 1,
                  'container': container,
                  'volume_id': volume_id,
                  'parent_id': parent_id,
                  'user_id': fake.USER_ID,
                  'project_id': fake.PROJECT_ID,
                  'service_metadata': service_metadata,
                  }
        return db.backup_create(self.ctxt, backup)['id']
Exemple #54
0
 def _create_backup(volume_id=1,
                    display_name='test_backup',
                    display_description='this is a test backup',
                    container='volumebackups',
                    status='creating',
                    size=0, object_count=0):
     """Create a backup object."""
     backup = {}
     backup['volume_id'] = volume_id
     backup['user_id'] = 'fake'
     backup['project_id'] = 'fake'
     backup['host'] = 'testhost'
     backup['availability_zone'] = 'az1'
     backup['display_name'] = display_name
     backup['display_description'] = display_description
     backup['container'] = container
     backup['status'] = status
     backup['fail_reason'] = ''
     backup['size'] = size
     backup['object_count'] = object_count
     return db.backup_create(context.get_admin_context(), backup)['id']
Exemple #55
0
 def setUp(self):
     super(DBAPIBackupTestCase, self).setUp()
     self.created = [
         db.backup_create(self.ctxt, values)
         for values in self._get_values()
     ]
Exemple #56
0
    def create(self):
        updates = self.cinder_obj_get_changes()

        db_backup = db.backup_create(self._context, updates)
        self._from_db_object(self._context, self, db_backup)