GitHub user ProjectMoon opened a pull request:
https://github.com/apache/cloudstack/pull/1406
CLOUDSTACK-9280: Allow system VM volumes to be expunged if no system VMs
are remaining.
This pull request is our proposed fix for
https://issues.apache.org/jira/browse/CLOUDSTACK-9280. I added a new special
SSVM endpoint that happily accepts any command given to it. This endpoint is
used in only a very specific scenario:
The volume's VM is in state destroyed or expunging, but the volume still
lingers.
The volume's VM is a system VM (SSVM or console proxy).
There are no secondary storage machines existing in the volume's zone.
This necessitated a small change to VolumeObject which allows it to find
removed VMs (findByIdIncludingRemoved). The main part of the work is in the
DefaultEndpointSelector.
We would like some thorough review of this PR as well as what tests to
create/run. I'm not sure if the scope of this fix will lead to unintentional
behavior changes in other scenarios.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/greenqloud/cloudstack pr-volume-expunge-fix
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/cloudstack/pull/1406.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #1406
----
commit b5f10b0d9bbf1a6788e82ae86d02e1ba484f238e
Author: jeff <[email protected]>
Date: 2016-02-08T16:30:03Z
CLOUDSTACK-9280: System VM volumes can be expunged if no SSVM exists.
This commit adds a special SSVM endpoint which simply returns true for
all operations sent to it, without actually doing anything. This
allows for destroyed volumes of system VMs to be expunged when there
are no hosts (and thus no system VMs) remaining to handle the volume
destruction.
----
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---