
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>
38 lines
940 B
Python
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.")
|