})
.addAction(new MenuAction() {
@Override
public void run(final String text) {
servicesInfo.hidePopup();
final Host dcHost = servicesInfo.getBrowser().getDCHost();
for (final ServiceInfo si : servicesInfo.getBrowser().getExistingServiceList(null)) {
if (si.getGroupInfo() == null
&& !si.isStopped(Application.RunMode.LIVE)
&& !si.getService().isOrphaned()
&& !si.getService().isNew()) {
si.stopResource(dcHost, Application.RunMode.LIVE);
}
}
servicesInfo.getBrowser().getCrmGraph().repaint();
}
});
final ButtonCallback stopAllItemCallback = servicesInfo.getBrowser().new ClMenuItemCallback(null)
.addAction(new CallbackAction() {
@Override
public void run(final Host host) {
final Host thisDCHost = servicesInfo.getBrowser().getDCHost();
for (final ServiceInfo si : servicesInfo.getBrowser().getExistingServiceList(null)) {
if (si.getGroupInfo() == null
&& !si.isConstraintPlaceholder()
&& !si.isStopped(Application.RunMode.TEST)
&& !si.getService().isOrphaned()
&& !si.getService().isNew()) {
si.stopResource(thisDCHost, Application.RunMode.TEST);
}
}
}
});
servicesInfo.addMouseOverListener(stopAllMenuItem, stopAllItemCallback);
items.add((UpdatableItem) stopAllMenuItem);
/* unmigrate all services. */
final ComponentWithTest unmigrateAllMenuItem = menuFactory.createMenuItem(
Tools.getString("ClusterBrowser.Hb.UnmigrateAllServices"),
ServiceInfo.UNMIGRATE_ICON,
new AccessMode(AccessMode.OP, AccessMode.NORMAL),
new AccessMode(AccessMode.OP, AccessMode.NORMAL))
.visiblePredicate(new VisiblePredicate() {
@Override
public boolean check() {
if (servicesInfo.getBrowser().crmStatusFailed()) {
return false;
}
if (servicesInfo.getBrowser().getExistingServiceList(null).isEmpty()) {
return false;
}
for (final ServiceInfo si : servicesInfo.getBrowser().getExistingServiceList(null)) {
if (si.getMigratedTo(runMode) != null || si.getMigratedFrom(runMode) != null) {
return true;
}
}
return false;
}
})
.addAction(new MenuAction() {
@Override
public void run(final String text) {
servicesInfo.hidePopup();
final Host dcHost = servicesInfo.getBrowser().getDCHost();
for (final ServiceInfo si : servicesInfo.getBrowser().getExistingServiceList(null)) {
if (si.getMigratedTo(runMode) != null || si.getMigratedFrom(runMode) != null) {
si.unmigrateResource(dcHost, Application.RunMode.LIVE);
}
}
servicesInfo.getBrowser().getCrmGraph().repaint();
}
});
final ButtonCallback unmigrateAllItemCallback =
servicesInfo.getBrowser().new ClMenuItemCallback(null)
.addAction(new CallbackAction() {
@Override
public void run(final Host dcHost) {
for (final ServiceInfo si : servicesInfo.getBrowser().getExistingServiceList(null)) {
if (si.getMigratedTo(runMode) != null || si.getMigratedFrom(runMode) != null) {
si.unmigrateResource(dcHost, Application.RunMode.TEST);
}
}
}
});
servicesInfo.addMouseOverListener(unmigrateAllMenuItem, unmigrateAllItemCallback);
items.add((UpdatableItem) unmigrateAllMenuItem);
/* remove all services. */
final ComponentWithTest removeMenuItem = menuFactory.createMenuItem(
Tools.getString("ClusterBrowser.Hb.RemoveAllServices"),
ClusterBrowser.REMOVE_ICON,
new AccessMode(AccessMode.ADMIN, AccessMode.ADVANCED),
new AccessMode(AccessMode.ADMIN, AccessMode.ADVANCED))
.enablePredicate(new EnablePredicate() {
@Override
public String check() {
if (servicesInfo.getBrowser().crmStatusFailed()) {
return ClusterBrowser.UNKNOWN_CLUSTER_STATUS_STRING;
}
if (servicesInfo.getBrowser().getExistingServiceList(null).isEmpty()) {
return "there are no services";
}
for (final ServiceInfo si : servicesInfo.getBrowser().getExistingServiceList(null)) {
if (si.getGroupInfo() == null) {
if (si.isRunning(Application.RunMode.LIVE)) {
return "there are running services";
}
}
}
return null;
}
})
.addAction(new MenuAction() {
@Override
public void run(final String text) {
servicesInfo.hidePopup();
if (application.confirmDialog(
Tools.getString("ClusterBrowser.confirmRemoveAllServices.Title"),
Tools.getString("ClusterBrowser.confirmRemoveAllServices.Description"),
Tools.getString("ClusterBrowser.confirmRemoveAllServices.Yes"),
Tools.getString("ClusterBrowser.confirmRemoveAllServices.No"))) {
final Thread t = new Thread() {
@Override
public void run() {
final Host dcHost = servicesInfo.getBrowser().getDCHost();
final List<ServiceInfo> services = servicesInfo.getBrowser().getExistingServiceList(null);
for (final ServiceInfo si : services) {
if (si.getGroupInfo() == null) {
final ResourceAgent ra = si.getResourceAgent();
if (ra != null && !ra.isClone()) {