[pve-devel] [PATCH container] fix regression breaking container restore from PBS
Fabian Grünbichler
f.gruenbichler at proxmox.com
Tue Nov 18 10:07:12 CET 2025
On November 17, 2025 7:40 pm, Thomas Lamprecht wrote:
> Am 17.11.25 um 14:53 schrieb Fabian Grünbichler:
>> we should have
>>
>> PVE::LXC::archive_is_oci_format($storage_cfg, $archive)
>>
>> and then we can just inline that and have a combined
>>
>> PVE::LXC::restore_oci_archive($storage_cfg, $archive, $conf)
>>
>> that combines the two current helpers (extract_oci_config and
>> merge_oci_conf_into_pct_conf) which are both only called once..
>
> Ack.
>
>> and we end up with
>>
>> if ($restore && $archive ne '-') {
>> print "restoring '$archive' now..\n";
>> } elsif (PVE::LXC::archive_is_oci_format($storage_cfg, $archive) {
>> print "Detected OCI archive\n";
>> PVE::LXC::restore_oci_archive($storage_cfg, $archive, $conf);
>> } else {
>> # Not an OCI image, so restore it as an LXC image instead
>> PVE::LXC::Create::restore_archive(
>>
>
> This if-elsif-else chain is wrong though, i.e., the first one needs to be separate,
> and can move in the else branch. I ended up with:
>
> if (
> !$restore # OCI image format is solely supported for fresh creation.
> && PVE::LXC::Create::archive_is_oci_format($storage_cfg, $archive)
> ) {
> print "Detected OCI archive\n";
> PVE::LXC::Create::restore_oci_archive(
> $storage_cfg, $archive, $rootdir, $conf,
> );
> } else {
> print "restoring '$archive' now..\n" if $restore && $archive ne '-';
> ....
>
> I'd appreciate another look though!
Yes, Filip also noted that off-list yesterday, sorry!
changes look good to me.
More information about the pve-devel
mailing list