Files
apt-ostree/apt_ostree/cmd/repo/remove.py
Lindley Werner 8022697b60 Add "components" to apt-ostree
Adds support to apt-ostree to manage the Debian packages in logically
separated components. With that, the apt-ostree can manage packages
from different release versions without mixing them.

Changed "add", "list" and "remove" repo commands to have an optional
argument "--component". If passed, the package will be added, list or
removed from the specified component, if not the package will be added,
listed or removed from the default component, created on the apt-ostree
setup with the "--origin" argument (e.g. updates).

Pinned pytest to a specific version to fix py3 job.

Test plan:
PASS Installed apt-ostree from git repo
PASS Run to initialize the repo "apt-ostree repo init \
--feed <feed_dir> --release bookworm --origin updates"

Test plan add:
PASS Download the desired Debian package
PASS Run "apt-ostree repo add --feed <feed_dir> \
--release bookworm --component 24.03.01 <package.deb>"

Test plan list
PASS Run "apt-ostree repo list --feed <feed_dir> \
--release bookworm --component 24.03.01"

Test plan remove:
PASS Run "sudo apt-ostree repo remove --feed <feed_dir> \
--release bookworm --component 24.03.01 <package>"
PASS Run list command to check if the package was removed

Story: 2010867
Task: 50118

Change-Id: I4c6e0df5fccd29e2b3b9a7932932c008f2fe0386
Signed-off-by: Lindley Werner <Lindley.Vieira@windriver.com>
2024-05-29 11:29:02 -03:00

38 lines
940 B
Python

"""
Copyright (c) 2023-2024 Wind River Systems, Inc.
SPDX-License-Identifier: Apache-2.0
"""
import errno
import sys
import click
from apt_ostree.cmd.options import component_option
from apt_ostree.cmd.options import feed_option
from apt_ostree.cmd.options import packages_option
from apt_ostree.cmd.options import release_option
from apt_ostree.cmd import pass_state_context
from apt_ostree.repo import Repo
@click.command(help="Remove debian package(s) from repository.")
@pass_state_context
@feed_option
@release_option
@component_option
@packages_option
def remove(state, feed, release, component, packages):
try:
Repo(state).remove()
except KeyboardInterrupt:
click.secho("\n" + ("Exiting at your request."))
sys.exit(130)
except BrokenPipeError:
sys.exit()
except OSError as error:
if error.errno == errno.ENOSPC:
sys.exit("error - No space left on device.")