modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/message/MessageBar.java
| 13 ++
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/bundle/BundleManagerBean.java
| 2
modules/plugins/ant-bundle/src/main/java/org/rhq/plugins/ant/AntBundlePluginComponent.java
| 54 +++++++++-
3 files changed, 63 insertions(+), 6 deletions(-)
New commits:
commit 0d7321357b81f8a502359546a2eefe58145dcaf3
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Fri Jan 21 16:06:28 2011 -0500
make the messagebar a little wider. also be able to double click it to make it go away
so it stops being annoying
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/message/MessageBar.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/message/MessageBar.java
index 9aecd39..1731a7a 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/message/MessageBar.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/message/MessageBar.java
@@ -23,6 +23,8 @@ import com.google.gwt.user.client.Timer;
import com.smartgwt.client.types.Alignment;
import com.smartgwt.client.types.Overflow;
import com.smartgwt.client.widgets.Label;
+import com.smartgwt.client.widgets.events.DoubleClickEvent;
+import com.smartgwt.client.widgets.events.DoubleClickHandler;
import org.rhq.enterprise.gui.coregui.client.CoreGUI;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableHLayout;
@@ -56,12 +58,21 @@ public class MessageBar extends LocatableHLayout implements
MessageCenter.Messag
setAlign(Alignment.CENTER);
label.setAlign(Alignment.CENTER);
- label.setWidth("400px");
+ label.setWidth("600px");
label.setHeight("25px");
setLabelEmpty();
addMember(label);
+ // sometimes its annoying to have the error message hang around for too long
+ // let the user click the message so it goes away on demand
+ addDoubleClickHandler(new DoubleClickHandler() {
+ @Override
+ public void onDoubleClick(DoubleClickEvent event) {
+ clearMessage(true);
+ }
+ });
+
CoreGUI.getMessageCenter().addMessageListener(this);
}
commit 050324bde98297eb19e51efc636c9f056631d90f
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Fri Jan 21 14:20:26 2011 -0500
purge external files as well as the deploy dir
diff --git
a/modules/plugins/ant-bundle/src/main/java/org/rhq/plugins/ant/AntBundlePluginComponent.java
b/modules/plugins/ant-bundle/src/main/java/org/rhq/plugins/ant/AntBundlePluginComponent.java
index ca528ea..817b647 100644
---
a/modules/plugins/ant-bundle/src/main/java/org/rhq/plugins/ant/AntBundlePluginComponent.java
+++
b/modules/plugins/ant-bundle/src/main/java/org/rhq/plugins/ant/AntBundlePluginComponent.java
@@ -62,6 +62,7 @@ import org.rhq.core.util.file.FileUtil;
import org.rhq.core.util.stream.StreamUtil;
import org.rhq.core.util.updater.DeployDifferences;
import org.rhq.core.util.updater.DeploymentsMetadata;
+import org.rhq.core.util.updater.FileHashcodeMap;
/**
* @author John Mazzitelli
@@ -170,9 +171,6 @@ public class AntBundlePluginComponent implements ResourceComponent,
BundleFacet
return result;
}
- // TODO: this is copied from FileTemplate bundle plugin - I think we want to be more
smart here since
- // we have more metadata about the live deployment to be purged in our
.rhqdeployments (specifically about
- // the external raw files that we should delete)
public BundlePurgeResult purgeBundle(BundlePurgeRequest request) {
BundlePurgeResult result = new BundlePurgeResult();
try {
@@ -182,8 +180,56 @@ public class AntBundlePluginComponent implements ResourceComponent,
BundleFacet
String deployDirAbsolutePath = deployDir.getAbsolutePath();
BundleManagerProvider bundleManagerProvider =
request.getBundleManagerProvider();
+ // If the receipe copied file(s) outside of the deployment directory
(external, raw files), they will still exist.
+ // Let's get the metadata information that tells us if such files exist,
and if so, remove them.
+ DeploymentsMetadata metadata = new DeploymentsMetadata(deployDir);
+ if (metadata.isManaged()) {
+ int totalExternalFiles = 0;
+ ArrayList<String> deleteSuccesses = new
ArrayList<String>(0);
+ ArrayList<String> deleteFailures = new ArrayList<String>(0);
+ FileHashcodeMap fileHashcodes =
metadata.getCurrentDeploymentFileHashcodes();
+ for (String filePath : fileHashcodes.keySet()) {
+ File file = new File(filePath);
+ if (file.isAbsolute()) {
+ totalExternalFiles++;
+ if (file.exists()) {
+ if (file.delete()) {
+ deleteSuccesses.add(filePath);
+ } else {
+ deleteFailures.add(filePath);
+ }
+ } else {
+ deleteSuccesses.add(filePath); // someone already deleted it,
consider it removed successfully
+ }
+ }
+ }
+ if (totalExternalFiles > 0) {
+ if (!deleteSuccesses.isEmpty()) {
+ StringBuilder deleteSuccessesDetails = new StringBuilder();
+ for (String path : deleteSuccesses) {
+ deleteSuccessesDetails.append(path).append("\n");
+ }
+ bundleManagerProvider.auditDeployment(deploymentToPurge,
"Purge", "External files were purged",
+ Category.AUDIT_MESSAGE, Status.SUCCESS, "[" +
deleteSuccesses.size() + "] of ["
+ + totalExternalFiles
+ + "] external files were purged. See attached
details for the list",
+ deleteSuccessesDetails.toString());
+ }
+ if (!deleteFailures.isEmpty()) {
+ StringBuilder deleteFailuresDetails = new StringBuilder();
+ for (String path : deleteFailures) {
+ deleteFailuresDetails.append(path).append("\n");
+ }
+ bundleManagerProvider.auditDeployment(deploymentToPurge,
"Purge",
+ "External files failed to be purged",
Category.AUDIT_MESSAGE, Status.FAILURE, "["
+ + deleteFailures.size() + "] of [" +
totalExternalFiles
+ + "] external files failed to be purged. See
attached details for the list",
+ deleteFailuresDetails.toString());
+ }
+ }
+ }
+
// completely purge the deployment directory.
- // TODO: if the receipe copied a file outside of the deployment directory, it
will still exist. How do we remove those?
FileUtil.purge(deployDir, true);
if (!deployDir.exists()) {
commit b832dafa882f0533d0038dfb7195cd3383cc30fb
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Fri Jan 21 11:01:05 2011 -0500
call with overlord
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/bundle/BundleManagerBean.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/bundle/BundleManagerBean.java
index 3f56380..909c6ae 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/bundle/BundleManagerBean.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/bundle/BundleManagerBean.java
@@ -847,7 +847,7 @@ public class BundleManagerBean implements BundleManagerLocal,
BundleManagerRemot
}
// marks the live deployment "no longer live"
- bundleManager._finalizePurge(subject, liveDeployment, failedToPurge);
+ bundleManager._finalizePurge(subjectManager.getOverlord(), liveDeployment,
failedToPurge);
// throw an exception if we failed to purge one or more resource deployments.
// since we are not in a tx context, we lose nothing. All DB updates have already
been committed by now
Show replies by date