Search in sources :

Example 1 with RequestTrackerException

use of org.opennms.netmgt.rt.RequestTrackerException in project opennms by OpenNMS.

the class RtTicketerPlugin method get.

/**
	 * {@inheritDoc}
	 *
	 * Gets ticket details from the RT trouble ticket system
	 */
@Override
public Ticket get(final String ticketId) throws PluginException {
    Ticket ticket = null;
    RTTicket rtt = null;
    try {
        rtt = m_requestTracker.getTicket(Long.valueOf(ticketId), false);
    } catch (final RequestTrackerException e) {
        throw new PluginException(e);
    }
    if (rtt != null) {
        ticket = new Ticket();
        ticket.setState(rtToOpenNMSState(rtt.getStatus()));
        ticket.setId(rtt.getId().toString());
        ticket.setUser(StringUtils.join(rtt.getRequestors(), ", "));
        ticket.setSummary(rtt.getSubject());
        ticket.setDetails(rtt.getText());
    } else {
        throw new PluginException("could not find ticket in RT for Ticket: " + ticketId);
    }
    return ticket;
}
Also used : RTTicket(org.opennms.netmgt.rt.RTTicket) Ticket(org.opennms.api.integration.ticketing.Ticket) RequestTrackerException(org.opennms.netmgt.rt.RequestTrackerException) RTTicket(org.opennms.netmgt.rt.RTTicket) PluginException(org.opennms.api.integration.ticketing.PluginException)

Example 2 with RequestTrackerException

use of org.opennms.netmgt.rt.RequestTrackerException in project opennms by OpenNMS.

the class SupportController method createTicket.

private SupportResults createTicket(final HttpServletRequest request) {
    final HttpSession session = request.getSession();
    final RequestTracker rt = (RequestTracker) session.getAttribute("requestTracker");
    // get ticket and user information
    final String subject = request.getParameter("subject").trim();
    String body = request.getParameter("text").trim();
    final String includeReport = request.getParameter("include-report");
    final boolean report = Boolean.parseBoolean(includeReport);
    LOG.debug("include report?: {} (parsed as {})", includeReport, Boolean.valueOf(report));
    final RTUser user = rt.getUserInfo(rt.getUsername());
    String email = user.getEmail();
    if (email == null || "".equals(email)) {
        email = m_configDao.getRequestor();
    }
    final Long queueId = m_configDao.getQueueId();
    RTQueue queue = new RTQueue(0, "Unknown");
    try {
        queue = rt.getQueue(queueId);
    } catch (final RequestTrackerException e) {
        LOG.warn("Unable to determine queue for queue ID {}", queueId.toString());
    }
    // create report if necessary
    if (report) {
        final FtpSystemReportFormatter formatter = new FtpSystemReportFormatter();
        final String url = m_configDao.getFtpBaseURL() + "/" + queue.getName() + "-" + user.getUsername() + "-" + UUID.randomUUID() + ".zip";
        formatter.setOutput(url);
        formatter.begin();
        for (final SystemReportPlugin plugin : m_systemReport.getPlugins()) {
            if (plugin.getName().equals("Logs"))
                continue;
            formatter.write(plugin);
        }
        formatter.end();
        body = body.concat("\n\nSystem report is available at: " + url + "\n");
    }
    final SupportResults results = new SupportResults();
    results.setNeedsLogin(false);
    results.setUsername(rt.getUsername());
    results.setQueue(queue.getName());
    List<CustomField> customFields = new ArrayList<CustomField>();
    customFields.add(new CustomField(m_configDao.getVersionFieldName(), "Version " + Vault.getProperty("version.display"), false));
    customFields.add(new CustomField(m_configDao.getOSFieldName(), System.getProperty("os.name") + " " + System.getProperty("os.version") + " (" + System.getProperty("os.arch") + ")", false));
    final RTTicket ticket = new RTTicket(queue.getName(), email, subject, body, customFields);
    try {
        final long id = rt.createTicket(ticket);
        results.setSuccess(true);
        results.setMessage("New ticket created: <a href=\"" + m_configDao.getBaseURL() + "/Ticket/Display.html?id=" + id + "\">" + id + "</a>");
    } catch (final RequestTrackerException e) {
        LOG.warn("Unable to create ticket {}", ticket, e);
        results.setSuccess(false);
        results.setMessage("Unable to create ticket: " + e.getLocalizedMessage());
    }
    return results;
}
Also used : HttpSession(javax.servlet.http.HttpSession) ArrayList(java.util.ArrayList) RequestTracker(org.opennms.netmgt.rt.RequestTracker) RTQueue(org.opennms.netmgt.rt.RTQueue) SystemReportPlugin(org.opennms.systemreport.SystemReportPlugin) RequestTrackerException(org.opennms.netmgt.rt.RequestTrackerException) FtpSystemReportFormatter(org.opennms.systemreport.formatters.FtpSystemReportFormatter) RTTicket(org.opennms.netmgt.rt.RTTicket) RTUser(org.opennms.netmgt.rt.RTUser) CustomField(org.opennms.netmgt.rt.CustomField)

Aggregations

RTTicket (org.opennms.netmgt.rt.RTTicket)2 RequestTrackerException (org.opennms.netmgt.rt.RequestTrackerException)2 ArrayList (java.util.ArrayList)1 HttpSession (javax.servlet.http.HttpSession)1 PluginException (org.opennms.api.integration.ticketing.PluginException)1 Ticket (org.opennms.api.integration.ticketing.Ticket)1 CustomField (org.opennms.netmgt.rt.CustomField)1 RTQueue (org.opennms.netmgt.rt.RTQueue)1 RTUser (org.opennms.netmgt.rt.RTUser)1 RequestTracker (org.opennms.netmgt.rt.RequestTracker)1 SystemReportPlugin (org.opennms.systemreport.SystemReportPlugin)1 FtpSystemReportFormatter (org.opennms.systemreport.formatters.FtpSystemReportFormatter)1