Esempio n. 1
0
  @Override
  public ActionForward execute(
      ActionMapping mapping,
      ActionForm form,
      HttpServletRequest request,
      HttpServletResponse response)
      throws Exception {

    PropertiesForm pForm = (PropertiesForm) form;
    HttpSession session = request.getSession();
    WebUser user = SessionUtils.getWebUser(session);
    WebUserPreferences preferences = user.getWebPreferences();

    ActionForward forward = checkSubmit(request, mapping, form);

    if (forward != null) {
      return forward;
    }

    if (!pForm.isDisplayOnDash()) {
      DashboardUtils.removePortlet(user, pForm.getPortletName());
    }

    ProblemResourcesPortletPreferences problemResourcePreferences =
        pForm.getProblemResourcesPortletPreferences();
    preferences.setProblemResourcesPortletPreferences(problemResourcePreferences);

    session.removeAttribute(Constants.USERS_SES_PORTAL);

    return mapping.findForward(RetCodeConstants.SUCCESS_URL);
  }
  /**
   * This sets the return path for a ResourceAction by appending the type and resource id to the
   * forward url.
   *
   * @param request The current controller's request.
   * @param mapping The current controller's mapping that contains the input.
   * @throws ParameterNotFoundException if the type or id are not found
   * @throws ServletException If there is not input defined for this form
   */
  @Override
  protected void setReturnPath(HttpServletRequest request, ActionMapping mapping, Map params)
      throws Exception {
    this.fetchReturnPathParams(request, params);
    String returnPath = ActionUtils.findReturnPath(mapping, params);
    if (log.isTraceEnabled()) {
      log.trace("setting return path: " + returnPath);
    }

    SessionUtils.setReturnPath(request.getSession(), returnPath);
  }
Esempio n. 3
0
  public ActionForward listDefinitions(
      ActionMapping mapping,
      ActionForm form,
      HttpServletRequest request,
      HttpServletResponse response)
      throws Exception {
    setResource(request);

    super.setNavMapLocation(request, mapping, Constants.ALERT_CONFIG_LOC);

    // clean out the return path
    SessionUtils.resetReturnPath(request.getSession());

    // set the return path
    try {
      setReturnPath(request, mapping);
    } catch (ParameterNotFoundException pne) {
      if (log.isDebugEnabled()) {
        log.debug("", pne);
      }
    }

    Portal portal = Portal.createPortal();
    setTitle(request, portal, "alerts.config.platform.DefinitionList.Title");
    portal.setDialog(false);

    try {
      RequestUtils.getStringParameter(request, Constants.APPDEF_RES_TYPE_ID);
      portal.addPortlet(new Portlet(".admin.alerts.List"), 1);
    } catch (ParameterNotFoundException e) {
      portal.addPortlet(new Portlet(".events.config.list"), 1);
    }

    request.setAttribute(Constants.PORTAL_KEY, portal);

    return null;
  }
Esempio n. 4
0
  /**
   * This sets the return path for a ResourceAction by appending the type and resource id to the
   * forward url.
   *
   * @param request The current controller's request.
   * @param mapping The current controller's mapping that contains the input.
   * @exception ParameterNotFoundException if the type or id are not found
   * @exception ServletException If there is not input defined for this form
   */
  @Override
  protected void setReturnPath(HttpServletRequest request, ActionMapping mapping) throws Exception {
    HashMap parms = new HashMap();

    int resourceId = RequestUtils.getResourceId(request);
    parms.put(Constants.RESOURCE_ID_PARAM, resourceId);

    try {
      parms.put(
          Constants.ALERT_DEFINITION_PARAM,
          RequestUtils.getIntParameter(request, Constants.ALERT_DEFINITION_PARAM));
      parms.put(Constants.CHILD_RESOURCE_TYPE_ID_PARAM, WebUtility.getChildResourceTypeId(request));
    } catch (ParameterNotFoundException pnfe) {
      // that's ok!
      log.trace("couldn't find parameter: " + pnfe.getMessage());
    }

    // sets the returnPath to match the mode we're in.
    String mode = request.getParameter(Constants.MODE_PARAM);
    parms.put(Constants.MODE_PARAM, mode);

    String returnPath = ActionUtils.findReturnPath(mapping, parms);
    SessionUtils.setReturnPath(request.getSession(), returnPath);
  }
  @SuppressWarnings("unchecked")
  @Override
  public ActionForward execute(
      ComponentContext context,
      ActionMapping mapping,
      ActionForm form,
      HttpServletRequest request,
      HttpServletResponse response)
      throws Exception {

    dataManager = LookupUtil.getMeasurementDataManager();
    chartsManager = LookupUtil.getMeasurementChartsManager();

    WebUser user = SessionUtils.getWebUser(request.getSession());
    Subject subject = user.getSubject();
    Resource resource = (Resource) request.getAttribute(AttrConstants.RESOURCE_ATTR);

    // Get metric time range
    MeasurementPreferences preferences = user.getMeasurementPreferences();
    MetricRangePreferences rangePreferences = preferences.getMetricRangePreferences();
    long begin = rangePreferences.begin;
    long end = rangePreferences.end;

    List<AutoGroupComposite> children;
    List<AutoGroupCompositeDisplaySummary> displaySummary;
    int parentId = -1;
    int resourceTypeId = -1;
    if (resource == null) {
      parentId =
          WebUtility.getOptionalIntRequestParameter(
              request, AttrConstants.AUTOGROUP_PARENT_ATTR, -1);
      if (parentId > 0) // get data for individual autogroup children
      {
        resourceTypeId =
            WebUtility.getOptionalIntRequestParameter(
                request, AttrConstants.AUTOGROUP_TYPE_ATTR, -1);
        children = getAutoGroupChildren(subject, parentId, resourceTypeId);
        if (children == null) children = new ArrayList<AutoGroupComposite>();
        displaySummary = new ArrayList<AutoGroupCompositeDisplaySummary>(children.size() + 1);

        // get the parent
        ResourceManagerLocal resourceManager = LookupUtil.getResourceManager();
        AutoGroupComposite parentComposite =
            resourceManager.getResourceAutoGroup(subject, parentId);
        if (parentComposite != null) {
          parentComposite.setMainResource(true);
          List<MetricDisplaySummary> metricSummaries = null;
          metricSummaries =
              chartsManager.getMetricDisplaySummariesForMetrics(
                  subject, parentId, DataType.MEASUREMENT, begin, end, true, true);
          displaySummary.add(
              0, new AutoGroupCompositeDisplaySummary(parentComposite, metricSummaries));
        }
        /* We have n children with each child representing exactly 1 resource.
         * As we are in an autogroup, all children have the same type, so we can just feed them to the backend
         * in one call with all n resources.
         */

        // Loop over children, get resources, call some ..forMultiMetrics..
        List<Integer> resourceIds = new ArrayList<Integer>();
        for (AutoGroupComposite child : children) {
          List resources = child.getResources();
          ResourceWithAvailability rwa = (ResourceWithAvailability) resources.get(0);
          resourceIds.add(rwa.getResource().getId());
        }

        // Map<ResourceId, List<Summaries for that resource>
        Map<Integer, List<MetricDisplaySummary>> summaries =
            dataManager.findNarrowedMetricDisplaySummariesForResourcesAndParent(
                subject, resourceTypeId, parentId, resourceIds, begin, end);
        for (AutoGroupComposite child : children) {
          if (parentComposite != null) child.increaseDepth(1);

          List resources = child.getResources();
          ResourceWithAvailability rwa = (ResourceWithAvailability) resources.get(0);
          List<MetricDisplaySummary> sumList = summaries.get(rwa.getResource().getId());
          displaySummary.add(new AutoGroupCompositeDisplaySummary(child, sumList));
        }

      } else {
        RequestUtils.setError(request, MessageConstants.ERR_RESOURCE_NOT_FOUND);
        return null;
      }
    } else { // resource != null
      // get children of that single resource, which can be individual resources or autogroups
      children = getResourceChildren(resource, subject);

      displaySummary = new ArrayList<AutoGroupCompositeDisplaySummary>(children.size());
      for (AutoGroupComposite child : children) {
        List<MetricDisplaySummary> metrics = getMetrics(resource, child, subject, begin, end);

        displaySummary.add(new AutoGroupCompositeDisplaySummary(child, metrics));
      }
    }

    context.putAttribute(AttrConstants.CTX_SUMMARIES, displaySummary);

    return null;
  }