Hey Artem, thank you very much for your quick reply and pointer to the patchset you work on! On 18/01/2021 20:14, Artem Goncharov wrote:
Ha, thats exactly the case, the whole logic sits in sdk and is spread across the supported services: - https://opendev.org/openstack/openstacksdk/src/branch/master/openstack/compu... <https://opendev.org/openstack/openstacksdk/src/branch/master/openstack/compute/v2/_proxy.py#L1798> - for compute. KeyPairs not dropped, since they belong to user, and not to the “project”; - https://opendev.org/openstack/openstacksdk/src/branch/master/openstack/block... <https://opendev.org/openstack/openstacksdk/src/branch/master/openstack/block_storage/v3/_proxy.py#L547> - block storage; - https://opendev.org/openstack/openstacksdk/src/branch/master/openstack/orche... <https://opendev.org/openstack/openstacksdk/src/branch/master/openstack/orchestration/v1/_proxy.py#L490> - https://opendev.org/openstack/openstacksdk/src/branch/master/openstack/netwo... <https://opendev.org/openstack/openstacksdk/src/branch/master/openstack/network/v2/_proxy.py#L4130> - the most complex one in order to give possibility to clean “old” resource without destroying everything else
Adding image is few lines of code (never had enough time to add it), identity is a bit tricky, since also here mostly resources does not belong to Project. DNS would be also easy to do. OSC here is only providing I/F, while the logic sits in SDK and can be very easy extended for other services.
On 18. Jan 2021, at 19:52, Thomas Goirand <zigo@debian.org <mailto:zigo@debian.org>> wrote:
On 1/18/21 6:56 PM, Artem Goncharov wrote:
What do you mean it doesn’t implement anything at all? It does clean up compute, network, block_storage, orchestrate resources. Moreover it gives you possibility to clean “old” resources (created before or last updated before).
Oh really? With that few lines of code? I'll re-read the patch then, sorry for my bad assumptions.
Can you point at the part that's actually deleting the resources?
If I understood correctly, the cleanup relies on the SDK functionality / requirement for each resource type to provide a corresponding function( https://github.com/openstack/openstacksdk/blob/master/openstack/cloud/openst...) ? Reading through the (SDK) code this even covers depending resources, nice! I certainly will leave some feedback and comments in your change (https://review.opendev.org/c/openstack/python-openstackclient/+/734485). But what are your immediate plans moving forward on with this then, Artem? There is a little todo list in the description on your change .. is there anything you yourself know that is still missing before taking this to a full review and finally merging it? Only code that is shipped and then actively used will improve further and people will notice other required functionality or switches for later iterations. With the current state of having a somewhat working but unmaintained ospurge and a non feature complete "project purge" (supports only Block Storage v1, v2; Compute v2; Image v1, v2) this will only cause people to start hacking away on the ospurge codebase or worse building their own tools and scripts to implement project cleanup for their environments over and over again. Regards, Christian