batou icon indicating copy to clipboard operation
batou copied to clipboard

Unmanagement ideas

Open ctheune opened this issue 1 year ago • 4 comments

We talked about the potential to improve the "unmanagement" story by allowing components to storing "uninstall receipts" and execute any uninstall receipts that are not "claimed" by a component during a run.

I think we don't have an issue for this yet, so here it is!

Also, I just stumbled over this issue that might be benefit from unmanagement: https://yt.flyingcircus.io/issue/FC-30068/symlink-and-cleanup-no-working-as-expected

ctheune avatar Mar 30 '23 06:03 ctheune

There's also another instance where unmanagement would have reduced the complexity of a change massively: https://gitlab.flyingcircus.io/flyingcircus/fc.directory.deployment/-/merge_requests/65

ctheune avatar Apr 26 '23 08:04 ctheune

A similar approach for files might be temporary states, where intermediate files are stored in a temp directory. Archives for example, where you only require the contents of the archive, not the archive itself, could be downloaded to a temporary location, unpacked there and subsequently deleted without requiring the user to manage the download location or the deletion of the archive manually.

In python pseudo-code this might look like

with S3Download(...) as archive:
    extract(archive, inplace=True)
    copy(f"{archive}/README.txt", f"{workdir}/README.txt")

# the archive is being deleted right after the copy or exists only in `/tmp`

I am not sure how well that would fit the batou configure-verify-update model though, maybe a wrapper component like

self += TempDir(S3Download(...))
self.temp_archive = self._
...

could work better?

PhilTaken avatar May 24 '23 08:05 PhilTaken