package org.hyperic.hq.ui.action.resource.group.control; import javax.annotation.Resource; import org.apache.commons.logging.LogFactory; import org.hyperic.hq.appdef.shared.AppdefEntityID; import org.hyperic.hq.bizapp.shared.ControlBoss; import org.hyperic.hq.product.PluginException; import org.hyperic.hq.product.PluginNotFoundException; import org.hyperic.hq.scheduler.ScheduleValue; import org.hyperic.hq.ui.Constants; import org.hyperic.hq.ui.action.resource.common.control.EditActionNG; import org.hyperic.hq.ui.util.RequestUtils; import org.hyperic.hq.ui.util.SessionUtils; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; @Component("editGroupControlActionNG") @Scope(value="prototype") public class EditGroupActionNG extends EditActionNG { @Resource private ControlBoss controlBoss; public EditGroupActionNG () { this.cForm = new GroupControlFormNG(); this.log = LogFactory.getLog(EditGroupActionNG.class.getName()); this.runBackendSave=false; } public String save() throws Exception { request = getServletRequest(); int sessionId = RequestUtils.getSessionId(request).intValue(); AppdefEntityID appdefId = RequestUtils.getEntityId(request); String outcome = super.save(); if (outcome.equals(INPUT)) { return outcome; } try{ ScheduleValue sv = this.convertToScheduleValue(); Integer[] orderSpec = null; int[] newOrderSpec = null; if (((GroupControlFormNG) cForm).getInParallel().booleanValue() == GroupControlFormNG.IN_ORDER.booleanValue()) { orderSpec = ((GroupControlFormNG) cForm).getResourceOrdering(); newOrderSpec = new int[orderSpec.length]; for (int i = 0; i < orderSpec.length; i++) { newOrderSpec[i] = orderSpec[i].intValue(); } } Integer[] bids = new Integer[] { RequestUtils.getIntParameter(request, Constants.CONTROL_BATCH_ID_PARAM), }; controlBoss.deleteControlJob(sessionId, bids); try{ if (cForm.getStartTime().equals(GroupControlFormNG.START_NOW)) { controlBoss.doGroupAction(sessionId, appdefId, cForm.getControlAction(), (String) null, newOrderSpec); } else { controlBoss.doGroupAction(sessionId, appdefId, cForm.getControlAction(), newOrderSpec, sv); } }catch (Exception e){ addActionError(getText("resource.common.error.ControlNotEnabled")); return INPUT; } // set confirmation message addActionMessage(getText("resource.common.scheduled.Confirmation")); return outcome; } catch (PluginNotFoundException pnfe) { log.trace("no plugin available", pnfe); this.addActionError(getText("resource.common.error.PluginNotFound")); return INPUT; } catch (PluginException cpe) { log.trace("control not enabled", cpe); this.addActionError(getText("resource.common.error.ControlNotEnabled")); return INPUT; } } }