Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package targetcli-fb for openSUSE:Factory checked in at 2026-10-21 21:00:11 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/targetcli-fb (Old) and /work/SRC/openSUSE:Factory/.targetcli-fb.new.2252680 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "targetcli-fb" Wed Oct 21 21:00:11 2026 rev:30 rq:1386748 version:3.0.2 Changes: -------- --- /work/SRC/openSUSE:Factory/targetcli-fb/targetcli-fb.changes 2025-08-27 21:36:48.844030072 +0200 +++ /work/SRC/openSUSE:Factory/.targetcli-fb.new.2252680/targetcli-fb.changes 2026-10-21 21:01:57.780257575 +0200 @@ -1,0 +2,10 @@ +Sun Oct 18 10:57:51 UTC 2026 - Martin Pluskal <[email protected]> + +- Update to 3.0.2: + * restoreconfig: no longer return success if the file + doesn't exist + * Allow user to control exclusive ownership for iblock + * Correct tab-completion for storage objects +- Spec cleanup: drop obsolete Group tags + +------------------------------------------------------------------- Old: ---- targetcli-fb-3.0.1.tar.xz New: ---- targetcli-fb-3.0.2.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ targetcli-fb.spec ++++++ --- /var/tmp/diff_new_pack.cBQrTD/_old 2026-10-21 21:01:59.049310931 +0200 +++ /var/tmp/diff_new_pack.cBQrTD/_new 2026-10-21 21:01:59.051311015 +0200 @@ -1,7 +1,7 @@ # # spec file for package targetcli-fb # -# Copyright (c) 2025 SUSE LLC and contributors +# Copyright (c) 2026 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -22,11 +22,10 @@ %bcond_with libalternatives %endif Name: targetcli-fb -Version: 3.0.1 +Version: 3.0.2 Release: 0 Summary: A command shell for managing the Linux LIO kernel target License: Apache-2.0 -Group: System/Management URL: https://github.com/open-iscsi/%{name} Source: %{name}-%{version}.tar.xz Source1: %{name}.service @@ -41,6 +40,7 @@ BuildRequires: %{pythons} BuildRequires: fdupes BuildRequires: git +BuildRequires: pkgconfig BuildRequires: python-rpm-macros BuildRequires: pkgconfig(systemd) Requires: python-configshell-fb @@ -75,7 +75,6 @@ %package -n %{name}-common Summary: Common targetcli-fb subpackage for either flavor of Python -Group: System/Management Provides: %{python_module targetcli-fb-common} %description -n %{name}-common @@ -143,8 +142,8 @@ %doc README.md THANKS %dir %{_sysconfdir}/target %dir %{_sysconfdir}/target/backup -%doc %{_mandir}/man8/targetcli.8%{?ext_man} -%doc %{_mandir}/man8/targetclid.8%{?ext_man} +%{_mandir}/man8/targetcli.8%{?ext_man} +%{_mandir}/man8/targetclid.8%{?ext_man} %{_unitdir}/targetcli.service %{_unitdir}/targetclid.service %{_unitdir}/targetclid.socket ++++++ _service ++++++ --- /var/tmp/diff_new_pack.cBQrTD/_old 2026-10-21 21:01:59.087312529 +0200 +++ /var/tmp/diff_new_pack.cBQrTD/_new 2026-10-21 21:01:59.091312697 +0200 @@ -8,7 +8,7 @@ <param name="versionformat">@PARENT_TAG@</param> <param name="versionrewrite-pattern">v(\d*\.\d*\.)(\d*)</param> <param name="versionrewrite-replacement">\1\2</param> - <param name="revision">v3.0.1</param> + <param name="revision">v3.0.2</param> <param name="changesgenerate">enable</param> </service> <service name="recompress" mode="disabled"> ++++++ targetcli-fb-3.0.1.tar.xz -> targetcli-fb-3.0.2.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/targetcli-fb-3.0.1/.fmf/version new/targetcli-fb-3.0.2/.fmf/version --- old/targetcli-fb-3.0.1/.fmf/version 1970-01-01 01:00:00.000000000 +0100 +++ new/targetcli-fb-3.0.2/.fmf/version 2026-10-18 12:57:33.075877105 +0200 @@ -0,0 +1 @@ +1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/targetcli-fb-3.0.1/.git/HEAD new/targetcli-fb-3.0.2/.git/HEAD --- old/targetcli-fb-3.0.1/.git/HEAD 2025-02-25 09:52:35.000000000 +0100 +++ new/targetcli-fb-3.0.2/.git/HEAD 2026-10-18 12:57:33.099879795 +0200 @@ -1 +1 @@ -2b3db3980327a9c12a43fd2108dcf00327523f9a +24f0a33d15ada373404d08ee618d365c85592851 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/targetcli-fb-3.0.1/.git/ORIG_HEAD new/targetcli-fb-3.0.2/.git/ORIG_HEAD --- old/targetcli-fb-3.0.1/.git/ORIG_HEAD 2025-02-25 09:52:35.000000000 +0100 +++ new/targetcli-fb-3.0.2/.git/ORIG_HEAD 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -2b3db3980327a9c12a43fd2108dcf00327523f9a diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/targetcli-fb-3.0.1/.git/hooks/pre-commit.sample new/targetcli-fb-3.0.2/.git/hooks/pre-commit.sample --- old/targetcli-fb-3.0.1/.git/hooks/pre-commit.sample 2025-02-25 09:52:35.000000000 +0100 +++ new/targetcli-fb-3.0.2/.git/hooks/pre-commit.sample 2026-10-18 12:57:32.251784756 +0200 @@ -28,7 +28,7 @@ # Note that the use of brackets around a tr range is ok here, (it's # even required, for portability to Solaris 10's /usr/bin/tr), since # the square bracket bytes happen to fall in the designated range. - test $(git diff --cached --name-only --diff-filter=A -z $against | + test $(git diff-index --cached --name-only --diff-filter=A -z $against | LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0 then cat <<\EOF Binary files old/targetcli-fb-3.0.1/.git/index and new/targetcli-fb-3.0.2/.git/index differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/targetcli-fb-3.0.1/.git/logs/HEAD new/targetcli-fb-3.0.2/.git/logs/HEAD --- old/targetcli-fb-3.0.1/.git/logs/HEAD 2025-02-25 09:52:35.000000000 +0100 +++ new/targetcli-fb-3.0.2/.git/logs/HEAD 2026-10-18 12:57:33.099879795 +0200 @@ -1,2 +1,2 @@ -0000000000000000000000000000000000000000 ec7f392196d1100ea48fa1fc93cedbb4b44109c3 Lee Duncan <[email protected]> 1742611032 -0700 clone: from https://github.com/open-iscsi/targetcli-fb.git -ec7f392196d1100ea48fa1fc93cedbb4b44109c3 2b3db3980327a9c12a43fd2108dcf00327523f9a Lee Duncan <[email protected]> 1742611032 -0700 checkout: moving from master to v3.0.1 +0000000000000000000000000000000000000000 a2a26e283a906b2488bad51fc4af9dc0659a7633 Martin Pluskal <[email protected]> 1792321053 +0200 clone: from https://github.com/open-iscsi/targetcli-fb.git +a2a26e283a906b2488bad51fc4af9dc0659a7633 24f0a33d15ada373404d08ee618d365c85592851 Martin Pluskal <[email protected]> 1792321053 +0200 checkout: moving from master to v3.0.2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/targetcli-fb-3.0.1/.git/logs/refs/heads/master new/targetcli-fb-3.0.2/.git/logs/refs/heads/master --- old/targetcli-fb-3.0.1/.git/logs/refs/heads/master 2025-02-25 09:52:35.000000000 +0100 +++ new/targetcli-fb-3.0.2/.git/logs/refs/heads/master 2026-10-18 12:57:33.075877105 +0200 @@ -1 +1 @@ -0000000000000000000000000000000000000000 ec7f392196d1100ea48fa1fc93cedbb4b44109c3 Lee Duncan <[email protected]> 1742611032 -0700 clone: from https://github.com/open-iscsi/targetcli-fb.git +0000000000000000000000000000000000000000 a2a26e283a906b2488bad51fc4af9dc0659a7633 Martin Pluskal <[email protected]> 1792321053 +0200 clone: from https://github.com/open-iscsi/targetcli-fb.git diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/targetcli-fb-3.0.1/.git/logs/refs/remotes/origin/HEAD new/targetcli-fb-3.0.2/.git/logs/refs/remotes/origin/HEAD --- old/targetcli-fb-3.0.1/.git/logs/refs/remotes/origin/HEAD 2025-02-25 09:52:35.000000000 +0100 +++ new/targetcli-fb-3.0.2/.git/logs/refs/remotes/origin/HEAD 2026-10-18 12:57:33.071876657 +0200 @@ -1 +1 @@ -0000000000000000000000000000000000000000 ec7f392196d1100ea48fa1fc93cedbb4b44109c3 Lee Duncan <[email protected]> 1742611032 -0700 clone: from https://github.com/open-iscsi/targetcli-fb.git +0000000000000000000000000000000000000000 a2a26e283a906b2488bad51fc4af9dc0659a7633 Martin Pluskal <[email protected]> 1792321053 +0200 clone: from https://github.com/open-iscsi/targetcli-fb.git Binary files old/targetcli-fb-3.0.1/.git/objects/pack/pack-13cc024390e03223ec1b44296263efb15045386a.idx and new/targetcli-fb-3.0.2/.git/objects/pack/pack-13cc024390e03223ec1b44296263efb15045386a.idx differ Binary files old/targetcli-fb-3.0.1/.git/objects/pack/pack-13cc024390e03223ec1b44296263efb15045386a.pack and new/targetcli-fb-3.0.2/.git/objects/pack/pack-13cc024390e03223ec1b44296263efb15045386a.pack differ Binary files old/targetcli-fb-3.0.1/.git/objects/pack/pack-13cc024390e03223ec1b44296263efb15045386a.rev and new/targetcli-fb-3.0.2/.git/objects/pack/pack-13cc024390e03223ec1b44296263efb15045386a.rev differ Binary files old/targetcli-fb-3.0.1/.git/objects/pack/pack-66b0b7fecf19042284943e3beb62b09e6790f0b8.idx and new/targetcli-fb-3.0.2/.git/objects/pack/pack-66b0b7fecf19042284943e3beb62b09e6790f0b8.idx differ Binary files old/targetcli-fb-3.0.1/.git/objects/pack/pack-66b0b7fecf19042284943e3beb62b09e6790f0b8.pack and new/targetcli-fb-3.0.2/.git/objects/pack/pack-66b0b7fecf19042284943e3beb62b09e6790f0b8.pack differ Binary files old/targetcli-fb-3.0.1/.git/objects/pack/pack-66b0b7fecf19042284943e3beb62b09e6790f0b8.rev and new/targetcli-fb-3.0.2/.git/objects/pack/pack-66b0b7fecf19042284943e3beb62b09e6790f0b8.rev differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/targetcli-fb-3.0.1/.git/packed-refs new/targetcli-fb-3.0.2/.git/packed-refs --- old/targetcli-fb-3.0.1/.git/packed-refs 2025-02-25 09:52:35.000000000 +0100 +++ new/targetcli-fb-3.0.2/.git/packed-refs 2026-10-18 12:57:33.071876657 +0200 @@ -1,7 +1,10 @@ # pack-refs with: peeled fully-peeled sorted 4be9d9c8e98ae6605919aeee92348d6c0da4c59c refs/remotes/origin/add-usage b7a85ef8bcbd2c4337f17d86a3f0d3c3f4e2b364 refs/remotes/origin/fix-dir-del-issue -ec7f392196d1100ea48fa1fc93cedbb4b44109c3 refs/remotes/origin/master +137efd35d1101c2a5f12be16795631652eb829a4 refs/remotes/origin/gh-pages +94c3a4407ba106daca2fc24c8c5900562c3a20f8 refs/remotes/origin/lint-code-style-fix +a2a26e283a906b2488bad51fc4af9dc0659a7633 refs/remotes/origin/master +c70a7537840618b08190ea6d1834e9a2b9dd311c refs/remotes/origin/pre-commit-ci-update-config a7c313ce9810a0b178e0e8cfaf5ffc22d8868e30 refs/remotes/origin/upstream 0c3685df8d5dfb8b5cca3b5b47d2c7a722010688 refs/remotes/origin/user-backstore-poc 2b5d7bfa0fcb5f7c0cea2ae3e3425edacf67ff04 refs/remotes/origin/userback @@ -123,3 +126,4 @@ 4d08771c0e6bf3cacba2ed3d3127dd10a86a7847 refs/tags/v2.1.fb49 474edd5e68162415c72aa4e56850051b192b2437 refs/tags/v3.0.0 2b3db3980327a9c12a43fd2108dcf00327523f9a refs/tags/v3.0.1 +24f0a33d15ada373404d08ee618d365c85592851 refs/tags/v3.0.2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/targetcli-fb-3.0.1/.git/refs/heads/master new/targetcli-fb-3.0.2/.git/refs/heads/master --- old/targetcli-fb-3.0.1/.git/refs/heads/master 2025-02-25 09:52:35.000000000 +0100 +++ new/targetcli-fb-3.0.2/.git/refs/heads/master 2026-10-18 12:57:33.075877105 +0200 @@ -1 +1 @@ -ec7f392196d1100ea48fa1fc93cedbb4b44109c3 +a2a26e283a906b2488bad51fc4af9dc0659a7633 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/targetcli-fb-3.0.1/.github/workflows/codeql.yml new/targetcli-fb-3.0.2/.github/workflows/codeql.yml --- old/targetcli-fb-3.0.1/.github/workflows/codeql.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/targetcli-fb-3.0.2/.github/workflows/codeql.yml 2026-10-18 12:57:33.079877553 +0200 @@ -0,0 +1,39 @@ +name: "CodeQL" + +on: + push: + branches: [ "master" ] + pull_request: + branches: [ "master" ] + +jobs: + analyze: + name: Analyze + runs-on: ubuntu-latest + permissions: + actions: read + contents: read + security-events: write + + strategy: + fail-fast: false + matrix: + language: [ 'python' ] + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Initialize CodeQL + uses: github/codeql-action/init@v3 + with: + languages: ${{ matrix.language }} + queries: security-and-quality + + - name: Autobuild + uses: github/codeql-action/autobuild@v3 + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v3 + with: + category: "/language:${{matrix.language}}" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/targetcli-fb-3.0.1/.github/workflows/pre-commit.yml new/targetcli-fb-3.0.2/.github/workflows/pre-commit.yml --- old/targetcli-fb-3.0.1/.github/workflows/pre-commit.yml 2025-02-25 09:52:35.000000000 +0100 +++ new/targetcli-fb-3.0.2/.github/workflows/pre-commit.yml 1970-01-01 01:00:00.000000000 +0100 @@ -1,14 +0,0 @@ -name: pre-commit - -on: - pull_request: - push: - branches: [master] - -jobs: - pre-commit: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 - - uses: pre-commit/[email protected] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/targetcli-fb-3.0.1/.packit.yaml new/targetcli-fb-3.0.2/.packit.yaml --- old/targetcli-fb-3.0.1/.packit.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/targetcli-fb-3.0.2/.packit.yaml 2026-10-18 12:57:33.079877553 +0200 @@ -0,0 +1,44 @@ +--- +# Basic configuration for Packit +# See documentation: https://packit.dev/docs/configuration/ + +specfile_path: python-targetcli-fb.spec + +upstream_package_name: targetcli-fb +# In Fedora, Python packages are prefixed with 'python-' +downstream_package_name: python3-targetcli + +# Use hatch to create the source archive +actions: + create-archive: + - hatch build -t sdist + - bash -c "ls -1t ./dist/*.tar.gz | head -n 1" + +srpm_build_deps: + - python3-devel + - python3-pip + - hatch + - python3-hatchling + - python3-hatch-vcs + +jobs: + # Test PRs in COPR + - job: copr_build + trigger: pull_request + targets: + - fedora-latest-stable + - epel-9 + + # Run tests + - job: tests + trigger: pull_request + targets: + - fedora-latest-stable + - epel-9 + + # Sync with Fedora when a new release is created + - job: propose_downstream + trigger: release + dist_git_branches: + - fedora-all + - epel-9 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/targetcli-fb-3.0.1/.pre-commit-config.yaml new/targetcli-fb-3.0.2/.pre-commit-config.yaml --- old/targetcli-fb-3.0.1/.pre-commit-config.yaml 2025-02-25 09:52:35.000000000 +0100 +++ new/targetcli-fb-3.0.2/.pre-commit-config.yaml 2026-10-18 12:57:33.079877553 +0200 @@ -1,12 +1,12 @@ repos: - - repo: https://github.com/charliermarsh/ruff-pre-commit - rev: v0.4.2 + - repo: https://github.com/astral-sh/ruff-pre-commit + rev: v0.14.10 hooks: - id: ruff args: [--fix] - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.6.0 + rev: v6.0.0 hooks: - id: check-case-conflict - id: check-ast @@ -21,3 +21,14 @@ - id: end-of-file-fixer - id: trailing-whitespace args: [--markdown-linebreak-ext=md] + + - repo: https://github.com/packit/pre-commit-hooks + rev: v1.3.0 + hooks: + - id: validate-config + +ci: + autofix_commit_msg: | + Auto fixes from pre-commit.com hooks + autofix_prs: false + autoupdate_schedule: monthly diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/targetcli-fb-3.0.1/ci-tests/sts.fmf new/targetcli-fb-3.0.2/ci-tests/sts.fmf --- old/targetcli-fb-3.0.1/ci-tests/sts.fmf 1970-01-01 01:00:00.000000000 +0100 +++ new/targetcli-fb-3.0.2/ci-tests/sts.fmf 2026-10-18 12:57:33.079877553 +0200 @@ -0,0 +1,4 @@ +plan: + import: + url: https://gitlab.com/rh-kernel-stqe/sts + name: /plans/lio/core diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/targetcli-fb-3.0.1/pyproject.toml new/targetcli-fb-3.0.2/pyproject.toml --- old/targetcli-fb-3.0.1/pyproject.toml 2025-02-25 09:52:35.000000000 +0100 +++ new/targetcli-fb-3.0.2/pyproject.toml 2026-10-18 12:57:33.079877553 +0200 @@ -96,6 +96,7 @@ "ARG002", "PLR6301", # TODO Unused self, parameter in methods definitions "PLR09", # Too many branches/statements/arguments "PLW1514", # TODO `open` in text mode without explicit `encoding` argument + "UP031", # Use format specifiers instead of percent format ] [tool.ruff.lint.flake8-quotes] # Single quotes are currently prevalent in the codebase. Not being checked. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/targetcli-fb-3.0.1/python-targetcli-fb.spec new/targetcli-fb-3.0.2/python-targetcli-fb.spec --- old/targetcli-fb-3.0.1/python-targetcli-fb.spec 1970-01-01 01:00:00.000000000 +0100 +++ new/targetcli-fb-3.0.2/python-targetcli-fb.spec 2026-10-18 12:57:33.079877553 +0200 @@ -0,0 +1,69 @@ +Name: python-targetcli-fb +Version: 2.1.58 +Release: %autorelease +Summary: Command shell for managing the Linux LIO kernel target + +License: Apache-2.0 +URL: https://github.com/open-iscsi/targetcli-fb +Source: %{pypi_source targetcli} + +BuildArch: noarch +BuildRequires: python3-devel +BuildRequires: python3-pip +BuildRequires: hatch +BuildRequires: python3-hatch-vcs +BuildRequires: python3-hatchling +BuildRequires: systemd-rpm-macros + +%global _description %{expand: +An administration shell for configuring iSCSI, FCoE, and other SCSI targets, +using the TCM/LIO kernel target subsystem. +} + +%description +%{_description} + +%package -n targetcli +Summary: %{summary} +Requires: python3-configshell +Requires: python3-rtslib +Requires: target-restore +Requires: python3-six +Requires: python3-dbus +Requires: python3-gobject-base + +%description -n targetcli +%{_description} + +%prep +%autosetup -n targetcli-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%pyproject_save_files targetcli + +mkdir -p %{buildroot}%{_sysconfdir}/target/backup +install -d %{buildroot}%{_unitdir} +install -p -m 644 systemd/targetclid.service %{buildroot}%{_unitdir}/ +install -p -m 644 systemd/targetclid.socket %{buildroot}%{_unitdir}/ +install -d %{buildroot}%{_mandir}/man8 +install -p -m 644 targetcli.8 %{buildroot}%{_mandir}/man8/ +install -p -m 644 targetclid.8 %{buildroot}%{_mandir}/man8/ + +%files -n targetcli -f %{pyproject_files} +%license COPYING +%doc README.md THANKS +%{_bindir}/targetcli +%{_bindir}/targetclid +%{_mandir}/man8/targetcli.8* +%{_mandir}/man8/targetclid.8* +%{_unitdir}/targetclid.service +%{_unitdir}/targetclid.socket +%dir %{_sysconfdir}/target +%dir %{_sysconfdir}/target/backup + +%changelog +%autochangelog diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/targetcli-fb-3.0.1/src/targetcli/targetclid.py new/targetcli-fb-3.0.2/src/targetcli/targetclid.py --- old/targetcli-fb-3.0.1/src/targetcli/targetclid.py 2025-02-25 09:52:35.000000000 +0100 +++ new/targetcli-fb-3.0.2/src/targetcli/targetclid.py 2026-10-18 12:57:33.099879795 +0200 @@ -153,7 +153,7 @@ connection.close() still_listen = False else: - self.con._stdout = self.con._stderr = f = tempfile.NamedTemporaryFile(mode='w', delete=False) + self.con._stdout = self.con._stderr = f = tempfile.NamedTemporaryFile(mode='w', delete=False) # noqa: SIM115 try: # extract multiple commands delimited with '%' list_data = data.decode().split('%') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/targetcli-fb-3.0.1/src/targetcli/ui_backstore.py new/targetcli-fb-3.0.2/src/targetcli/ui_backstore.py --- old/targetcli-fb-3.0.1/src/targetcli/ui_backstore.py 2025-02-25 09:52:35.000000000 +0100 +++ new/targetcli-fb-3.0.2/src/targetcli/ui_backstore.py 2026-10-18 12:57:33.079877553 +0200 @@ -516,7 +516,9 @@ ''' if current_param != 'file_or_dev': return [] - completions = complete_path(text, lambda x: stat.S_ISREG(x) or stat.S_ISBLK(x)) + completions = complete_path( + text, lambda x: stat.S_ISREG(x) or stat.S_ISBLK(x), + ) if text else [] if len(completions) == 1 and not completions[0].endswith('/'): completions = [completions[0] + ' '] return completions @@ -545,11 +547,10 @@ return False os.close(f) - if struct.unpack('I', buf)[0] == 0: - return False - return True + return struct.unpack('I', buf)[0] != 0 - def ui_command_create(self, name, dev, readonly=None, wwn=None): + def ui_command_create(self, name, dev, readonly=None, wwn=None, + exclusive=None): ''' Creates an Block Storage object. "dev" is the path to the TYPE_DISK block device to use. @@ -561,7 +562,11 @@ wwn = self.ui_eval_param(wwn, 'string', None) - so = BlockStorageObject(name, dev, readonly=readonly, wwn=wwn) + excl_string = self.ui_eval_param(exclusive, 'string', None) + exclusive = True if excl_string is None else self.ui_eval_param(exclusive, "bool", True) + + so = BlockStorageObject(name, dev, readonly=readonly, wwn=wwn, + exclusive=exclusive) ui_so = UIBlockStorageObject(so, self) self.setup_model_alias(so) self.shell.log.info(f"Created block storage object {name} using {dev}.") @@ -573,7 +578,7 @@ ''' if current_param != 'dev': return [] - completions = complete_path(text, stat.S_ISBLK) + completions = complete_path(text, stat.S_ISBLK) if text else [] if len(completions) == 1 and not completions[0].endswith('/'): completions = [completions[0] + ' '] return completions diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/targetcli-fb-3.0.1/src/targetcli/ui_root.py new/targetcli-fb-3.0.2/src/targetcli/ui_root.py --- old/targetcli-fb-3.0.1/src/targetcli/ui_root.py 2025-02-25 09:52:35.000000000 +0100 +++ new/targetcli-fb-3.0.2/src/targetcli/ui_root.py 2026-10-18 12:57:33.079877553 +0200 @@ -155,8 +155,7 @@ prefs = Path(universal_prefs_file).read_text() backups = [line for line in prefs.splitlines() if re.match( r'^max_backup_files\s*=', line)] - if max_backup_files < int(backups[0].split('=')[1].strip()): - max_backup_files = int(backups[0].split('=')[1].strip()) + max_backup_files = max(max_backup_files, int(backups[0].split('=')[1].strip())) except: self.shell.log.debug(f"No universal prefs file '{universal_prefs_file}'.") @@ -200,8 +199,7 @@ savefile = os.path.expanduser(savefile) if not os.path.isfile(savefile): - self.shell.log.info(f"Restore file {savefile} not found") - return + raise ExecutionError(f"Restore file {savefile} not found") target = self.ui_eval_param(target, 'string', None) storage_object = self.ui_eval_param(storage_object, 'string', None) @@ -320,7 +318,7 @@ else: printed_sessions = list(self.rtsroot.sessions) - if len(printed_sessions): + if printed_sessions: for session in printed_sessions: print_session(session) elif sid is None: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/targetcli-fb-3.0.1/src/targetcli/ui_target.py new/targetcli-fb-3.0.2/src/targetcli/ui_target.py --- old/targetcli-fb-3.0.1/src/targetcli/ui_target.py 2025-02-25 09:52:35.000000000 +0100 +++ new/targetcli-fb-3.0.2/src/targetcli/ui_target.py 2026-10-18 12:57:33.079877553 +0200 @@ -939,11 +939,15 @@ if current_param == 'tpg_lun_or_backstore': completions = [] for backstore in self.get_node('/backstores').children: - completions = [storage_object.path for storage_object in backstore.children] + completions.extend(storage_object.path + for storage_object in backstore.children) - completions.extend(lun.name for lun in self.parent.parent.get_node("luns").children) + completions.extend(lun.name + for lun in self.parent.parent.get_node("luns").children) - completions.extend(complete_path(text, lambda x: stat.S_ISREG(x) or stat.S_ISBLK(x))) + if text: + completions.extend(complete_path(text, + lambda x: stat.S_ISREG(x) or stat.S_ISBLK(x))) completions = [c for c in completions if c.startswith(text)] else: @@ -1151,10 +1155,13 @@ if current_param == 'storage_object': storage_objects = [] for backstore in self.get_node('/backstores').children: - storage_objects = [storage_object.path for storage_object in backstore.children] + storage_objects.extend(storage_object.path + for storage_object in backstore.children) completions = [so for so in storage_objects if so.startswith(text)] - completions.extend(complete_path(text, lambda x: stat.S_ISREG(x) or stat.S_ISBLK(x))) + if text: + completions.extend(complete_path(text, + lambda x: stat.S_ISREG(x) or stat.S_ISBLK(x))) else: completions = []
