Beispiel #1
0
    def test_get_auth_password(self):

        dbaas.utils.execute_with_timeout = Mock(return_value=("password    ", None))

        password = dbaas.get_auth_password()

        self.assertEqual("password", password)
Beispiel #2
0
    def test_get_auth_password(self):

        dbaas.utils.execute_with_timeout = \
            Mock(return_value=("password    ", None))

        password = dbaas.get_auth_password()

        self.assertEqual("password", password)
Beispiel #3
0
    def execute_backup(self, context, backup_id, runner=RUNNER):
        LOG.debug("Searching for backup instance %s", backup_id)
        backup = DBBackup.find_by(id=backup_id)
        LOG.info("Setting task state to %s for instance %s",
                 BackupState.NEW, backup.instance_id)
        backup.state(BackupState.NEW)
        backup.save()

        LOG.info("Running backup %s", backup_id)
        user = ADMIN_USER_NAME
        password = get_auth_password()
        connection = create_swift_client(context)
        with runner(filename=backup_id, user=user, password=password) as bkup:
            LOG.info("Starting Backup %s", backup_id)
            connection.put_container(BACKUP_CONTAINER)
            while not bkup.end_of_file:
                segment = bkup.segment
                etag = connection.put_object(BACKUP_CONTAINER, segment, bkup)
                # Check each segment MD5 hash against swift etag
                # Raise an error and mark backup as failed
                if etag != bkup.schecksum.hexdigest():
                    print etag, bkup.schecksum.hexdigest()
                    backup.state(BackupState.FAILED)
                    backup.note = "Error sending data to cloud files!"
                    backup.save()
                    raise BackupError(backup.note)

            checksum = bkup.checksum.hexdigest()
            url = connection.url
            location = "%s/%s/%s" % (url, BACKUP_CONTAINER, bkup.manifest)
            LOG.info("Backup %s file size: %s", backup_id, bkup.content_length)
            LOG.info('Backup %s file checksum: %s', backup_id, checksum)
            LOG.info('Backup %s location: %s', location)
            # Create the manifest file
            headers = {'X-Object-Manifest': bkup.prefix}
            connection.put_object(BACKUP_CONTAINER,
                                  bkup.manifest,
                                  contents='',
                                  headers=headers)
            LOG.info("Saving %s Backup Info", backup_id)
            backup.state(BackupState.COMPLETED)
            backup.checksum = checksum
            backup.location = location
            backup.backup_type = bkup.backup_type
            backup.save()