Skip to content

RFE: Make instance cleanup script clean up deleted volume and image rows #154

@JCallicoat

Description

@JCallicoat

This would be fairly easy to do and would help for environments that generate and delete a large number of volumes and images. This has been tested in a production Newton environment with these additions to the current script:

DELETE FROM cinder.volume_admin_metadata where volume_id IN ( SELECT id from cinder.volumes WHERE deleted > 0 );
DELETE FROM cinder.volume_attachment where volume_id IN ( SELECT id from cinder.volumes WHERE deleted > 0 );
DELETE FROM cinder.volume_metadata where volume_id IN ( SELECT id from cinder.volumes WHERE deleted > 0 );
DELETE FROM cinder.volume_glance_metadata where snapshot_id IN ( SELECT id FROM cinder.snapshots where volume_id IN ( SELECT id from cinder.volumes WHERE deleted > 0 ));
DELETE FROM cinder.snapshot_metadata where snapshot_id IN ( SELECT id FROM cinder.snapshots where volume_id IN ( SELECT id from cinder.volumes WHERE deleted > 0 ));
DELETE FROM cinder.snapshots where volume_id IN ( SELECT id from cinder.volumes WHERE deleted > 0 );
DELETE FROM cinder.transfers where volume_id IN ( SELECT id from cinder.volumes WHERE deleted > 0 );
DELETE FROM cinder.volumes where deleted > 0;

DELETE FROM glance.image_locations where image_id IN ( SELECT id from glance.images WHERE deleted > 0 );
DELETE FROM glance.image_properties where image_id IN ( SELECT id from glance.images WHERE deleted > 0 );
DELETE FROM glance.image_tags where image_id IN ( SELECT id from glance.images WHERE deleted > 0 );
DELETE FROM glance.image_members where image_id IN ( SELECT id from glance.images WHERE deleted > 0 );
DELETE FROM glance.image_locations where image_id IN ( SELECT id from glance.images WHERE deleted > 0 );
DELETE FROM glance.images where deleted > 0;

If it's too confusing to have nova-instance-cleanup.sh do more than just clean up instances then these could be broken out in separate scripts, or the name of the script could be changed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions