On 6/4/19 2:47 PM, Dominik Csapak wrote:
> with this, osd destruction is left to ceph-volume if the osd was created
> with ceph-volume, else our old code remains mostly the same since
> we want to be able to destroy upgraded osds
> 
> Signed-off-by: Dominik Csapak <d.csa...@proxmox.com>
> ---
>  PVE/API2/Ceph/OSD.pm | 76 
> ++++++++++++++++++++++++++++++++++------------------
>  1 file changed, 50 insertions(+), 26 deletions(-)

applied, with a follow up, see below (I tried do modify the diff so that one 
sees
the real outcome without whitespace changes)

> 
> diff --git a/PVE/API2/Ceph/OSD.pm b/PVE/API2/Ceph/OSD.pm
> index ae938016..7aec0642 100644
> --- a/PVE/API2/Ceph/OSD.pm
> +++ b/PVE/API2/Ceph/OSD.pm
> @@ -490,37 +490,61 @@ __PACKAGE__->register_method ({
>               warn $@ if $@;
>           };

> +         my $osd_list = PVE::Ceph::Tools::ceph_volume_list();
> +
> +         if ($osd_list->{$osdid}) {
> +             # ceph-volume managed
> +
> +             # try to make a list of devs we want to pvremove
> +             my $devices_pvremove = {};
> +             for my $osd_part (@{$osd_list->{$osdid}}) {
> +                 for my $dev (@{$osd_part->{devices}}) {
> +                     $devices_pvremove->{$dev} = 1;
>                   }
>               }

I moved above into the if (cleanup) branch below and just do the pveremove 
directly,
no recording into a hash required.

> 
> +             eval {
> +                 PVE::Ceph::Tools::ceph_volume_zap($osdid, 
> $param->{cleanup});
> +             };
> +             warn $@ if $@;
> +             if ($param->{cleanup}) {
> +                 # try to remove pvs, but do not fail if it does not work
> +                 for my $dev (keys %$devices_pvremove) {
> +                     eval { run_command(['/sbin/pvremove', $dev], errfunc => 
> {}) };
> +                 }
> +             }

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

Reply via email to