public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: Dominik Csapak <d.csapak@proxmox.com>
To: Fiona Ebner <f.ebner@proxmox.com>,
	Proxmox VE development discussion <pve-devel@lists.proxmox.com>
Subject: Re: [pve-devel] [PATCH qemu-server 3/3] api: create: implement extracting disks when needed for import-from
Date: Thu, 18 Apr 2024 11:58:38 +0200	[thread overview]
Message-ID: <39fd867e-5ac5-4008-aeee-eb85188ee9c3@proxmox.com> (raw)
In-Reply-To: <9f03a07a-f30b-43be-a48b-73869fd55f37@proxmox.com>

On 4/18/24 11:55, Fiona Ebner wrote:
> 
> 
> Am 18.04.24 um 11:48 schrieb Dominik Csapak:
>> On 4/18/24 11:41, Fiona Ebner wrote:
>>> Am 16.04.24 um 15:19 schrieb Dominik Csapak:
>>>> @@ -391,6 +392,13 @@ my sub create_disks : prototype($$$$$$$$$$) {
>>>>              $needs_creation = $live_import;
>>>>    +        if (PVE::Storage::copy_needs_extraction($source)) { #
>>>> needs extraction beforehand
>>>> +            print "extracting $source\n";
>>>> +            $source =
>>>> PVE::Storage::extract_disk_from_import_file($source, $vmid);
>>>> +            print "finished extracting to $source\n";
>>>> +            push @$delete_sources, $source;
>>>> +        }
>>>> +
>>>
>>> This breaks import from an absolute path: copy_needs_extraction()
>>> expects to be called with a PVE-managed volid, so the above should be
>>> moved into the if below.
>>
>> true, that will be fixed in the next iteration since we then get a
>> pve managed volid back after extraction
>> (see my answer to the cover letter)
>>
> 
> Sorry, I don't understand. The breakage is for import from an absolute
> path, because copy_needs_extraction() cannot be called on an absolute
> path. Why does it matter whether extraction returns a managed volid or not?
> 

sorry i was a step further along in my mind ^^

the reason i put it here was that we got an absolute path back, which
would have been complicated when i'd have put it in the branch

so with my next patch i'll return a volid again and we can safely put
it there as you suggested

>>>
>>>>            if (PVE::Storage::parse_volume_id($source, 1)) { #
>>>> PVE-managed volume
>>>>                if ($live_import && $ds ne 'efidisk0') {
>>>>                my $path = PVE::Storage::path($storecfg, $source)
>>>> @@ -514,13 +522,14 @@ my sub create_disks : prototype($$$$$$$$$$) {
>>>>            eval { PVE::Storage::vdisk_free($storecfg, $volid); };
>>>>            warn $@ if $@;
>>>>        }
>>>> +
>>>> PVE::QemuServer::Helpers::cleanup_extracted_images($delete_sources);
>>>>        die $err;
>>>>        }
>>>>          # don't return empty import mappings
>>>>        $live_import_mapping = undef if !%$live_import_mapping;
>>>>    -    return ($vollist, $res, $live_import_mapping);
>>>> +    return ($vollist, $res, $live_import_mapping, $delete_sources);
>>>>    };
>>>>      my $check_cpu_model_access = sub {
>>>
>>> The second caller of create_disks(), i.e. when updating an existing VM,
>>> is not updated to handle $delete_sources. (You can also do a disk
>>> import-from from an OVA for an existing VM).
>>>
>>> When I tested that my suspicion is correct I didn't notice initially
>>> that the temporary dirs were hidden, should we really make them so hard
>>> to find?
>>
>> see my recent answer to the cover letter, this shouldn't be an issue when
>> we put the extracted image into a valid image path on the storage
>>
> 
> But we should still attempt cleanup and not just ignore the
> $delete_sources for the second caller.

of course we have to clean up for the other case, i just meant
accidentally left over images can be more easily found and deleted

sorry for the confusion!


_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

  reply	other threads:[~2024-04-18  9:58 UTC|newest]

Thread overview: 67+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-16 13:18 [pve-devel] [PATCH storage/qemu-server/pve-manager] implement ova/ovf import for directory type storages Dominik Csapak
2024-04-16 13:18 ` [pve-devel] [PATCH storage 1/9] copy OVF.pm from qemu-server Dominik Csapak
2024-04-16 15:02   ` Thomas Lamprecht
2024-04-17  9:19     ` Fiona Ebner
2024-04-17  9:26       ` Thomas Lamprecht
2024-04-16 13:18 ` [pve-devel] [PATCH storage 2/9] plugin: dir: implement import content type Dominik Csapak
2024-04-17 10:07   ` Fiona Ebner
2024-04-17 10:07     ` Fiona Ebner
2024-04-17 13:13     ` Dominik Csapak
2024-04-17 12:46   ` Fabian Grünbichler
2024-04-16 13:18 ` [pve-devel] [PATCH storage 3/9] plugin: dir: handle ova files for import Dominik Csapak
2024-04-17 10:52   ` Fiona Ebner
2024-04-17 13:07     ` Dominik Csapak
2024-04-17 13:39       ` Fabian Grünbichler
2024-04-18  7:22       ` Fiona Ebner
2024-04-18  7:25         ` Fiona Ebner
2024-04-18  8:55         ` Fabian Grünbichler
2024-04-17 12:45   ` Fabian Grünbichler
2024-04-17 13:10     ` Dominik Csapak
2024-04-17 13:52       ` Fabian Grünbichler
2024-04-17 14:07         ` Dominik Csapak
2024-04-18  6:46           ` Fabian Grünbichler
2024-04-16 13:18 ` [pve-devel] [PATCH storage 4/9] ovf: implement parsing the ostype Dominik Csapak
2024-04-17 11:32   ` Fiona Ebner
2024-04-17 13:14     ` Dominik Csapak
2024-04-18  7:31       ` Fiona Ebner
2024-04-16 13:18 ` [pve-devel] [PATCH storage 5/9] ovf: implement parsing out firmware type Dominik Csapak
2024-04-17 11:43   ` Fiona Ebner
2024-04-16 13:18 ` [pve-devel] [PATCH storage 6/9] ovf: implement rudimentary boot order Dominik Csapak
2024-04-17 11:54   ` Fiona Ebner
2024-04-17 13:15     ` Dominik Csapak
2024-04-16 13:19 ` [pve-devel] [PATCH storage 7/9] ovf: implement parsing nics Dominik Csapak
2024-04-17 12:09   ` Fiona Ebner
2024-04-17 13:16     ` Dominik Csapak
2024-04-18  8:22   ` Fiona Ebner
2024-04-16 13:19 ` [pve-devel] [PATCH storage 8/9] api: allow ova upload/download Dominik Csapak
2024-04-18  8:05   ` Fiona Ebner
2024-04-16 13:19 ` [pve-devel] [PATCH storage 9/9] plugin: enable import for nfs/btfs/cifs/cephfs Dominik Csapak
2024-04-18  8:43   ` Fiona Ebner
2024-04-16 13:19 ` [pve-devel] [PATCH qemu-server 1/3] api: delete unused OVF.pm Dominik Csapak
2024-04-18  8:52   ` Fiona Ebner
2024-04-18  8:57     ` Dominik Csapak
2024-04-18  9:03       ` Fiona Ebner
2024-04-16 13:19 ` [pve-devel] [PATCH qemu-server 2/3] use OVF from Storage Dominik Csapak
2024-04-18  9:07   ` Fiona Ebner
2024-04-16 13:19 ` [pve-devel] [PATCH qemu-server 3/3] api: create: implement extracting disks when needed for import-from Dominik Csapak
2024-04-18  9:41   ` Fiona Ebner
2024-04-18  9:48     ` Dominik Csapak
2024-04-18  9:55       ` Fiona Ebner
2024-04-18  9:58         ` Dominik Csapak [this message]
2024-04-18 10:01           ` Fiona Ebner
2024-04-16 13:19 ` [pve-devel] [PATCH manager 1/4] ui: fix special 'import' icon for non-esxi storages Dominik Csapak
2024-04-16 13:19 ` [pve-devel] [PATCH manager 2/4] ui: guest import: add ova-needs-extracting warning text Dominik Csapak
2024-04-16 13:19 ` [pve-devel] [PATCH manager 3/4] ui: enable import content type for relevant storages Dominik Csapak
2024-04-16 13:19 ` [pve-devel] [PATCH manager 4/4] ui: enable upload/download buttons for 'import' type storages Dominik Csapak
2024-04-17 12:37   ` Fabian Grünbichler
2024-04-18 11:20   ` Fiona Ebner
2024-04-18 11:23     ` Dominik Csapak
2024-04-18 11:26       ` Fiona Ebner
2024-04-17 13:11 ` [pve-devel] [PATCH storage/qemu-server/pve-manager] implement ova/ovf import for directory " Fabian Grünbichler
2024-04-17 13:19   ` Dominik Csapak
2024-04-18  6:40     ` Fabian Grünbichler
2024-04-18  9:27 ` Dominik Csapak
2024-04-18 10:35   ` Fiona Ebner
2024-04-18 11:10     ` Dominik Csapak
2024-04-18 11:13       ` Fiona Ebner
2024-04-18 11:17     ` Fabian Grünbichler

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=39fd867e-5ac5-4008-aeee-eb85188ee9c3@proxmox.com \
    --to=d.csapak@proxmox.com \
    --cc=f.ebner@proxmox.com \
    --cc=pve-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal