You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by mt...@apache.org on 2015/01/23 01:36:43 UTC
git commit: updated refs/heads/master to f983e6e
Repository: cloudstack
Updated Branches:
refs/heads/master 29fbc4b42 -> f983e6ed8
Un-plug any remaining VBDs and PBDs
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/f983e6ed
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/f983e6ed
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/f983e6ed
Branch: refs/heads/master
Commit: f983e6ed82a8ba3c838a09789c9fc4ff01173bc5
Parents: 29fbc4b
Author: Mike Tutkowski <mi...@solidfire.com>
Authored: Thu Jan 22 12:43:54 2015 -0700
Committer: Mike Tutkowski <mi...@solidfire.com>
Committed: Thu Jan 22 17:36:04 2015 -0700
----------------------------------------------------------------------
.../xenserver/resource/CitrixResourceBase.java | 27 ++++++++++++++++----
1 file changed, 22 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f983e6ed/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/CitrixResourceBase.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/CitrixResourceBase.java b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/CitrixResourceBase.java
index 07318b8..a3c894d 100644
--- a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/CitrixResourceBase.java
+++ b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/CitrixResourceBase.java
@@ -2868,6 +2868,7 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe
if (sr == null) {
return;
}
+
if (s_logger.isDebugEnabled()) {
s_logger.debug(logX(sr, "Removing SR"));
}
@@ -2875,34 +2876,49 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe
for (int i = 0; i < 2; i++) {
try {
Set<VDI> vdis = sr.getVDIs(conn);
+
for (VDI vdi : vdis) {
+ Set<VBD> vbds = vdi.getVBDs(conn);
+
+ for (VBD vbd : vbds) {
+ vbd.unplug(conn);
+ }
+
vdi.forget(conn);
}
+
Set<PBD> pbds = sr.getPBDs(conn);
+
for (PBD pbd : pbds) {
if (s_logger.isDebugEnabled()) {
s_logger.debug(logX(pbd, "Unplugging pbd"));
}
- if (pbd.getCurrentlyAttached(conn)) {
- pbd.unplug(conn);
- }
+
+// if (pbd.getCurrentlyAttached(conn)) {
+ pbd.unplug(conn);
+// }
+
pbd.destroy(conn);
}
pbds = sr.getPBDs(conn);
+
if (pbds.size() == 0) {
if (s_logger.isDebugEnabled()) {
s_logger.debug(logX(sr, "Forgetting"));
}
+
sr.forget(conn);
+
return;
}
if (s_logger.isDebugEnabled()) {
- s_logger.debug(logX(sr, "There are still pbd attached"));
+ s_logger.debug(logX(sr, "There is still one or more PBDs attached."));
+
if (s_logger.isTraceEnabled()) {
for (PBD pbd : pbds) {
- s_logger.trace(logX(pbd, " Still attached"));
+ s_logger.trace(logX(pbd, "Still attached"));
}
}
}
@@ -2912,6 +2928,7 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe
s_logger.debug(logX(sr, "Catch Exception: " + e.getMessage()));
}
}
+
s_logger.warn(logX(sr, "Unable to remove SR"));
}