public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: Fiona Ebner <f.ebner@proxmox.com>
To: Dominik Csapak <d.csapak@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 12:01:57 +0200	[thread overview]
Message-ID: <10209beb-8077-4969-aef4-a129463f1f39@proxmox.com> (raw)
In-Reply-To: <39fd867e-5ac5-4008-aeee-eb85188ee9c3@proxmox.com>

Am 18.04.24 um 11:58 schrieb Dominik Csapak:
> 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
> 

Ah, I see :)

>>>>
>>>>>            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!
> 

Sorry for not understanding ;) I see what you mean now, thanks for the
explanations!


_______________________________________________
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 10:02 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
2024-04-18 10:01           ` Fiona Ebner [this message]
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=10209beb-8077-4969-aef4-a129463f1f39@proxmox.com \
    --to=f.ebner@proxmox.com \
    --cc=d.csapak@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