def verify_uniqueness():
     repository = Repository(self.repository_path)
     for key, _ in repository.open_index(repository.get_transaction_id()).iteritems():
         data = repository.get(key)
         hash = sha256(data).digest()
         if not hash in seen:
             seen.add(hash)
             num_blocks = num_aes_blocks(len(data) - 41)
             nonce = bytes_to_long(data[33:41])
             for counter in range(nonce, nonce + num_blocks):
                 self.assert_not_in(counter, used)
                 used.add(counter)
Ejemplo n.º 2
0
 def verify_uniqueness():
     repository = Repository(self.repository_path)
     for key, _ in repository.index.iteritems():
         data = repository.get(key)
         hash = sha256(data).digest()
         if not hash in seen:
             seen.add(hash)
             num_blocks = num_aes_blocks(len(data) - 41)
             nonce = bytes_to_long(data[33:41])
             for counter in range(nonce, nonce + num_blocks):
                 self.assert_not_in(counter, used)
                 used.add(counter)
Ejemplo n.º 3
0
 def test_delete(self):
     self.create_regual_file('file1', size=1024 * 80)
     self.create_regual_file('dir2/file2', size=1024 * 80)
     self.attic('init', self.repository_location)
     self.attic('create', self.repository_location + '::test', 'input')
     self.attic('create', self.repository_location + '::test.2', 'input')
     self.attic('verify', self.repository_location + '::test')
     self.attic('verify', self.repository_location + '::test.2')
     self.attic('delete', self.repository_location + '::test')
     self.attic('verify', self.repository_location + '::test.2')
     self.attic('delete', self.repository_location + '::test.2')
     # Make sure all data except the manifest has been deleted
     repository = Repository(self.repository_path)
     self.assert_equal(repository._len(), 1)
Ejemplo n.º 4
0
 def test_delete(self):
     self.create_regual_file('file1', size=1024 * 80)
     self.create_regual_file('dir2/file2', size=1024 * 80)
     self.attic('init', self.repository_location)
     self.attic('create', self.repository_location + '::test', 'input')
     self.attic('create', self.repository_location + '::test.2', 'input')
     self.attic('verify', self.repository_location + '::test')
     self.attic('verify', self.repository_location + '::test.2')
     self.attic('delete', self.repository_location + '::test')
     self.attic('verify', self.repository_location + '::test.2')
     self.attic('delete', self.repository_location + '::test.2')
     # Make sure all data except the manifest has been deleted
     repository = Repository(self.repository_path)
     self.assert_equal(repository._len(), 1)
Ejemplo n.º 5
0
 def _set_repository_id(self, path, id):
     config = RawConfigParser()
     config.read(os.path.join(path, 'config'))
     config.set('repository', 'id', hexlify(id).decode('ascii'))
     with open(os.path.join(path, 'config'), 'w') as fd:
         config.write(fd)
     return Repository(self.repository_path).id
Ejemplo n.º 6
0
 def open_repository(self, location, create=False):
     if location.proto == 'ssh':
         repository = RemoteRepository(location, create=create)
     else:
         repository = Repository(location.path, create=create)
     repository._location = location
     return repository
Ejemplo n.º 7
0
 def test_extra_chunks(self):
     self.attic('check', self.repository_location, exit_code=0)
     repository = Repository(self.repository_location)
     repository.put(b'01234567890123456789012345678901', b'xxxx')
     repository.commit()
     repository.close()
     self.attic('check', self.repository_location, exit_code=1)
     self.attic('check', self.repository_location, exit_code=1)
     self.attic('check', '--repair', self.repository_location, exit_code=0)
     self.attic('check', self.repository_location, exit_code=0)
     self.attic('extract', '--dry-run', self.repository_location + '::archive1', exit_code=0)
 def test_extra_chunks(self):
     self.attic('check', self.repository_location, exit_code=0)
     repository = Repository(self.repository_location)
     repository.put(b'01234567890123456789012345678901', b'xxxx')
     repository.commit()
     repository.close()
     self.attic('check', self.repository_location, exit_code=1)
     self.attic('check', self.repository_location, exit_code=1)
     self.attic('check', '--repair', self.repository_location, exit_code=0)
     self.attic('check', self.repository_location, exit_code=0)
     self.attic('extract', '--dry-run', self.repository_location + '::archive1', exit_code=0)
Ejemplo n.º 9
0
 def open(self, create=False):
     return Repository(os.path.join(self.tmppath, 'repository'),
                       create=create)
Ejemplo n.º 10
0
 def open_archive(self, name):
     repository = Repository(self.repository_path)
     manifest, key = Manifest.load(repository)
     archive = Archive(repository, key, manifest, name)
     return archive, repository
Ejemplo n.º 11
0
 def _extract_repository_id(self, path):
     return Repository(self.repository_path).id