docker manifest rm command to remove manifest list draft from local storage#2449
Conversation
| Short: "Delete a manifest list from local storage", | ||
| Args: cli.ExactArgs(1), | ||
| RunE: func(cmd *cobra.Command, args []string) error { | ||
| opts.target = args[0] |
There was a problem hiding this comment.
Should it accept multiple manifests? (i.e., docker manifest rm one two three) other rm commands support multiple manifests so it would probably make sense to accept that for this command as well
|
Any view on when this might merge? This is exactly the functionality we're looking for to ensure that old artifacts are cleaned if there is an issue with previous jobs |
| return err | ||
| } | ||
|
|
||
| manifests, err := dockerCli.ManifestStore().GetList(targetRef) |
There was a problem hiding this comment.
question: I wonder why we search the manifest list, couldn't we just remove it and return Remove error?
There was a problem hiding this comment.
actually in working on supporting multiple args it turns out that dockerCli.ManifestStore().GetList(targetRef) is useful because dockerCli.ManifestStore().Remove(targetRef) will fail silently when targetRef does not exist.
silvin-lubecki
left a comment
There was a problem hiding this comment.
I think the adding the rm subcommand is fine, but this PR needs some tests to be merged 👍
|
Hi everyone, I am really not a Go dev, this PR was mostly a proof-of-concept. I can try writing some tests... |
Really appreciate that. |
|
FYI for my own use cases I found |
Does |
|
Yes. |
Codecov Report
@@ Coverage Diff @@
## master #2449 +/- ##
==========================================
+ Coverage 58.59% 58.61% +0.02%
==========================================
Files 296 297 +1
Lines 21360 21387 +27
==========================================
+ Hits 12516 12537 +21
- Misses 7931 7935 +4
- Partials 913 915 +2 |
docker#2449 (comment) Signed-off-by: Jennings Zhang <[email protected]>
0e7c04f to
ccdc4ed
Compare
docker#2449 (comment) Signed-off-by: Jennings Zhang <[email protected]>
|
Happy to say that the tooling was surprisingly easy to pick up!
|
silvin-lubecki
left a comment
There was a problem hiding this comment.
LGTM, thanks @jennydaman 👍
thaJeztah
left a comment
There was a problem hiding this comment.
code changes LGTM, but could you squash the commits? Let me know if you need instructions on doing so 🤗
albers
left a comment
There was a problem hiding this comment.
I found problems in bash completion, please fix.
docker#2449 (review) Signed-off-by: Jennings Zhang <[email protected]>
Squashed commit of the following: commit b9ef85e Author: Jennings Zhang <[email protected]> Date: Mon Sep 14 21:39:57 2020 -0400 Fix bash completion docker#2449 (review) Signed-off-by: Jennings Zhang <[email protected]> commit 8c46bd6 Author: Jennings Zhang <[email protected]> Date: Sun Sep 13 01:48:12 2020 -0400 Add tests for docker manifest rm Signed-off-by: Jennings Zhang <[email protected]> commit 7e3d9a9 Author: Jennings Zhang <[email protected]> Date: Sun Sep 13 00:55:37 2020 -0400 docker manifest rm multiple args Signed-off-by: Jennings Zhang <[email protected]> commit 30466e2 Author: Jennings Zhang <[email protected]> Date: Sun Sep 13 00:01:20 2020 -0400 No need to search before Remove docker#2449 (comment) Signed-off-by: Jennings Zhang <[email protected]> commit ccdc4ed Author: Jennings Zhang <[email protected]> Date: Sat Sep 12 23:42:41 2020 -0400 Completion should also handle --help docker#2449 (comment) Signed-off-by: Jennings Zhang <[email protected]> commit ed260af Merge: 46c61d8 2955ece Author: Jennings Zhang <[email protected]> Date: Sat Sep 12 23:31:54 2020 -0400 Merge branch 'master' into manifest-rm commit 46c61d8 Author: Jennings Zhang <[email protected]> Date: Fri Apr 17 21:53:33 2020 -0400 Remove extra space Signed-off-by: Jennings Zhang <[email protected]> commit 6d31d26 Author: Jennings Zhang <[email protected]> Date: Fri Apr 17 21:15:21 2020 -0400 Bash completion for `docker manifest rm` Signed-off-by: Jennings Zhang <[email protected]> commit 3c8c843 Author: Jennings Zhang <[email protected]> Date: Fri Apr 17 21:05:50 2020 -0400 Frankenstein a `docker manifest rm` command Signed-off-by: Jennings Zhang <[email protected]> Signed-off-by: Jennings Zhang <[email protected]>
8c46bd6 to
29dcc37
Compare
|
@albers bash completion fixed @thaJeztah I tried squash, I think it's correct-ish? |
Looks like something we should fix in a follow-up. I think it would be good to have |
| targetRef, refErr := normalizeReference(target) | ||
| if refErr != nil { | ||
| errs = append(errs, refErr.Error()) | ||
| continue |
There was a problem hiding this comment.
We could probably add a -f / --force option to switch between "failing immediately" if any of the references is invalid and/or doesn't exist, or only printing the error, but still completing the command successfully (see #2678 and #2677)
Not a blocker; this command is still experimental, so I'm ok on improving that in a follow-up
There was a problem hiding this comment.
this command is still experimental
--force isn't ubiquitous either way
docker network rm --help
Usage: docker network rm NETWORK [NETWORK...]
Remove one or more networks
Aliases:
rm, remove
There was a problem hiding this comment.
I think for network, there had been some discussion, but the problem was that --force would also imply "if it's in use", which could mean that containers would have to be (automatically) detached from the network.
There was a problem hiding this comment.
I agree with your proposal @thaJeztah, and also ok to improve that in a follow-up 👍
Squashed commit of the following: commit b9ef85e Author: Jennings Zhang <[email protected]> Date: Mon Sep 14 21:39:57 2020 -0400 Fix bash completion docker#2449 (review) Signed-off-by: Jennings Zhang <[email protected]> commit 8c46bd6 Author: Jennings Zhang <[email protected]> Date: Sun Sep 13 01:48:12 2020 -0400 Add tests for docker manifest rm Signed-off-by: Jennings Zhang <[email protected]> commit 7e3d9a9 Author: Jennings Zhang <[email protected]> Date: Sun Sep 13 00:55:37 2020 -0400 docker manifest rm multiple args Signed-off-by: Jennings Zhang <[email protected]> commit 30466e2 Author: Jennings Zhang <[email protected]> Date: Sun Sep 13 00:01:20 2020 -0400 No need to search before Remove docker#2449 (comment) Signed-off-by: Jennings Zhang <[email protected]> commit ccdc4ed Author: Jennings Zhang <[email protected]> Date: Sat Sep 12 23:42:41 2020 -0400 Completion should also handle --help docker#2449 (comment) Signed-off-by: Jennings Zhang <[email protected]> commit ed260af Merge: 46c61d8 2955ece Author: Jennings Zhang <[email protected]> Date: Sat Sep 12 23:31:54 2020 -0400 Merge branch 'master' into manifest-rm commit 46c61d8 Author: Jennings Zhang <[email protected]> Date: Fri Apr 17 21:53:33 2020 -0400 Remove extra space Signed-off-by: Jennings Zhang <[email protected]> commit 6d31d26 Author: Jennings Zhang <[email protected]> Date: Fri Apr 17 21:15:21 2020 -0400 Bash completion for `docker manifest rm` Signed-off-by: Jennings Zhang <[email protected]> commit 3c8c843 Author: Jennings Zhang <[email protected]> Date: Fri Apr 17 21:05:50 2020 -0400 Frankenstein a `docker manifest rm` command Signed-off-by: Jennings Zhang <[email protected]> Signed-off-by: Jennings Zhang <[email protected]>
29dcc37 to
185d712
Compare
Squashed commit of the following: commit b9ef85e74833ba405f68cfc20989c69d64bac4e9 Author: Jennings Zhang <[email protected]> Date: Mon Sep 14 21:39:57 2020 -0400 Fix bash completion docker/cli#2449 (review) Signed-off-by: Jennings Zhang <[email protected]> commit 8c46bd6e6ed151bb43865c8b1d79c00fd62e4345 Author: Jennings Zhang <[email protected]> Date: Sun Sep 13 01:48:12 2020 -0400 Add tests for docker manifest rm Signed-off-by: Jennings Zhang <[email protected]> commit 7e3d9a9bc60e44d96953093fa0b1bc3397ca7813 Author: Jennings Zhang <[email protected]> Date: Sun Sep 13 00:55:37 2020 -0400 docker manifest rm multiple args Signed-off-by: Jennings Zhang <[email protected]> commit 30466e28d28f6722053c5a232e99ddbae8222715 Author: Jennings Zhang <[email protected]> Date: Sun Sep 13 00:01:20 2020 -0400 No need to search before Remove docker/cli#2449 (comment) Signed-off-by: Jennings Zhang <[email protected]> commit ccdc4ed0a620cf8c9ec6ecc6804d1a45f7c61be5 Author: Jennings Zhang <[email protected]> Date: Sat Sep 12 23:42:41 2020 -0400 Completion should also handle --help docker/cli#2449 (comment) Signed-off-by: Jennings Zhang <[email protected]> commit ed260afa71a4f8feb6550f79692e47ad7430d786 Merge: 46c61d85e9 2955ece024 Author: Jennings Zhang <[email protected]> Date: Sat Sep 12 23:31:54 2020 -0400 Merge branch 'master' into manifest-rm commit 46c61d85e973cc9fdd28d42db9ecebe373e9b942 Author: Jennings Zhang <[email protected]> Date: Fri Apr 17 21:53:33 2020 -0400 Remove extra space Signed-off-by: Jennings Zhang <[email protected]> commit 6d31d26c10e8d395ab08561cdb9b29829bb4bd91 Author: Jennings Zhang <[email protected]> Date: Fri Apr 17 21:15:21 2020 -0400 Bash completion for `docker manifest rm` Signed-off-by: Jennings Zhang <[email protected]> commit 3c8c843deb2f751a5f51ee6fcaa75da2a4525d99 Author: Jennings Zhang <[email protected]> Date: Fri Apr 17 21:05:50 2020 -0400 Frankenstein a `docker manifest rm` command Signed-off-by: Jennings Zhang <[email protected]> Signed-off-by: Jennings Zhang <[email protected]> Upstream-commit: 185d71262a56dfb2d5c11d49441f6acb729055eb Component: cli
Squashed commit of the following: commit b9ef85e Author: Jennings Zhang <[email protected]> Date: Mon Sep 14 21:39:57 2020 -0400 Fix bash completion docker#2449 (review) Signed-off-by: Jennings Zhang <[email protected]> commit 8c46bd6 Author: Jennings Zhang <[email protected]> Date: Sun Sep 13 01:48:12 2020 -0400 Add tests for docker manifest rm Signed-off-by: Jennings Zhang <[email protected]> commit 7e3d9a9 Author: Jennings Zhang <[email protected]> Date: Sun Sep 13 00:55:37 2020 -0400 docker manifest rm multiple args Signed-off-by: Jennings Zhang <[email protected]> commit 30466e2 Author: Jennings Zhang <[email protected]> Date: Sun Sep 13 00:01:20 2020 -0400 No need to search before Remove docker#2449 (comment) Signed-off-by: Jennings Zhang <[email protected]> commit ccdc4ed Author: Jennings Zhang <[email protected]> Date: Sat Sep 12 23:42:41 2020 -0400 Completion should also handle --help docker#2449 (comment) Signed-off-by: Jennings Zhang <[email protected]> commit ed260af Merge: 46c61d8 2955ece Author: Jennings Zhang <[email protected]> Date: Sat Sep 12 23:31:54 2020 -0400 Merge branch 'master' into manifest-rm commit 46c61d8 Author: Jennings Zhang <[email protected]> Date: Fri Apr 17 21:53:33 2020 -0400 Remove extra space Signed-off-by: Jennings Zhang <[email protected]> commit 6d31d26 Author: Jennings Zhang <[email protected]> Date: Fri Apr 17 21:15:21 2020 -0400 Bash completion for `docker manifest rm` Signed-off-by: Jennings Zhang <[email protected]> commit 3c8c843 Author: Jennings Zhang <[email protected]> Date: Fri Apr 17 21:05:50 2020 -0400 Frankenstein a `docker manifest rm` command Signed-off-by: Jennings Zhang <[email protected]> Signed-off-by: Jennings Zhang <[email protected]>
- What I did
Made a typo and wanted to delete my manifest from local storage, yet there was no easy way to do so without using
docker manifest push --purge.I implemented a new sub-command
docker manifest rm- How I did it
tbh I never programmed in Go before, so I copied and pasted
push.gotorm.goand kept deleting lines until it would compile.- How to verify it
- Description for the changelog
Add sub-command
docker manifest rm- A picture of a cute animal (not mandatory but encouraged)