We have a customer who is trying to use the "remove member from blob store group" task to remove an old blob store. That task should move all the content from the target blob store to the next one in the group, but for some reason no content is moved.
We are unable to determine what is going wrong because there is no logging in the BlobStoreGroupMemberRemovalTask code.
All operations that 'move' or 'delete' content should have an option to log ALL changes made by that operation. For successful operations, this logging could be added by way of the audit.log if it makes sense and not already present in the task log. A summary of the operations should be present in the task specific log.
Any exceptions (including runtime exceptions) that occur of any kind during the move should also be logged in the nexus.log and task log.
If a blob is not moved for any reason the reason it was skipped should be logged. This is a separate requirement from the exception logging above, the code may be testing things before doing the move. If a test fails and the blob is skipped log the reason it was skipped.
- Create a couple of blob stores
- Create a blob store group with the previously created blob stores (if you want, you can assign round robin fill policy to delete any of these later)
- Create a repository with the blob store group previously created
- upload a couple of artifacts to the created repository
- set the log level to DEBUG to the package com.sonatype.nexus.blobstore.group.tasks and com.sonatype.nexus.blobstore through the UI
- schedule a "delete member from blob store group task"
- you should see the debug logs on the task log, indicating the writable state of a blob store, the transfer process between them, etc.