MCPcopy
hub / github.com/borgbackup/borg / modify

Method modify

src/borg/fslocking.py:334–352  ·  view source on GitHub ↗
(self, key, op)

Source from the content-addressed store, hash-verified

332 return all(not self.get(key) for key in keys)
333
334 def modify(self, key, op):
335 roster = self.load()
336 try:
337 elements = {tuple(e) for e in roster[key]}
338 except KeyError:
339 elements = set()
340 if op == ADD:
341 elements.add(self.id)
342 elif op == REMOVE:
343 # note: we ignore it if the element is already not present anymore.
344 # this has been frequently seen in teardowns involving Repository.__del__ and Repository.__exit__.
345 elements.discard(self.id)
346 elif op == REMOVE2:
347 # needed for callers that do not want to ignore.
348 elements.remove(self.id)
349 else:
350 raise ValueError("Unknown LockRoster op %r" % op)
351 roster[key] = list(list(e) for e in elements)
352 self.save(roster)
353
354 def migrate_lock(self, key, old_id, new_id):
355 """migrate the lock ownership from old_id to new_id"""

Callers 7

migrate_lockMethod · 0.95
test_modify_getMethod · 0.95
test_kill_staleMethod · 0.95
test_migrate_lockMethod · 0.95
acquireMethod · 0.80
releaseMethod · 0.80

Calls 4

loadMethod · 0.95
saveMethod · 0.95
addMethod · 0.45
removeMethod · 0.45

Tested by 3

test_modify_getMethod · 0.76
test_kill_staleMethod · 0.76
test_migrate_lockMethod · 0.76