/** * {@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; }
private RTTicket rtTicketFromTicket(final Ticket ticket) { final RTTicket rtt = new RTTicket(); final String id = ticket.getId(); if (id != null && id.length() > 0) { rtt.setId(Long.valueOf(id)); } rtt.setQueue(m_queue); rtt.setRequestor(m_requestor); if (ticket.getSummary() != null) rtt.setSubject(ticket.getSummary()); // Remove any HTML tags in the ticket details. if (ticket.getDetails() != null) rtt.setText(m_tagPattern.matcher(ticket.getDetails()).replaceAll("")); rtt.setStatus(openNMSToRTState(ticket.getState())); return rtt; }
private String getSummary(Ticket ticket) { StringBuffer summary = new StringBuffer(); if (ticket.getAttribute(ATTRIBUTE_NODE_LABEL_ID) != null) { summary.append(ticket.getAttribute(ATTRIBUTE_NODE_LABEL_ID)); summary.append(": OpenNMS: "); } summary.append(ticket.getSummary()); if (summary.length() > MAX_SUMMARY_CHARS) return summary.substring(0,MAX_SUMMARY_CHARS-1); return summary.toString(); }
/** * Convenience method for updating the Ticket Status in RT * * @param ticket the ticket details */ private void updateRtStatus(final Ticket ticket) throws PluginException { try { m_requestTracker.updateTicket(Long.valueOf(ticket.getId()), "Status: " + openNMSToRTState(ticket.getState())); } catch (final Exception e) { LOG.warn("Error updating ticket {} to state {}", ticket.getId(), ticket.getState(), e); } }
/** * Called from API implemented method after successful retrieval of Alarm. * * @param alarm OpenNMS Model class alarm * @param attributes * @return OpenNMS Ticket with contents of alarm. * TODO: Add alarm attributes to Ticket. * TODO: Add alarmid to Ticket class for ability to reference back to Alarm (waffling on this * since ticket isn't a persisted object and other reasons) */ protected Ticket createTicketFromAlarm(OnmsAlarm alarm, Map<String, String> attributes) { Ticket ticket = new Ticket(); ticket.setSummary(alarm.getLogMsg()); ticket.setDetails(alarm.getDescription()); ticket.setId(alarm.getTTicketId()); ticket.setAlarmId(alarm.getId()); ticket.setNodeId(alarm.getNodeId()); ticket.setIpAddress(alarm.getIpAddr()); ticket.setAttributes(attributes); if (attributes.containsKey("user")) ticket.setUser(attributes.get("user")); return ticket; }
private Ticket getInternal(String ticketId, JiraRestClient jira) throws PluginException { // w00t Issue issue; try { issue = jira.getIssueClient().getIssue(ticketId).get(); } catch (InterruptedException|ExecutionException e) { throw new PluginException("Failed to get issue with id: " + ticketId, e); } if (issue != null) { Ticket ticket = new Ticket(); ticket.setId(issue.getKey()); ticket.setModificationTimestamp(String.valueOf(issue.getUpdateDate().toDate().getTime())); ticket.setSummary(issue.getSummary()); ticket.setDetails(issue.getDescription()); ticket.setState(getStateFromStatusName(issue.getStatus().getName())); return ticket; } else { return null; } }
if (!StringUtils.isEmpty(ticket.getAttribute(AFFECTED_PERSON))) { MXStringType affectedPerson = new MXStringType(); affectedPerson.setValue(ticket.getAttribute(AFFECTED_PERSON)); incident.setAFFECTEDPERSON(affectedPerson); if (!StringUtils.isEmpty(ticket.getAttribute(ASSET_NUM))) { MXStringType assetNum = new MXStringType(); assetNum.setValue(ticket.getAttribute(ASSET_NUM)); incident.setASSETNUM(assetNum); if (!StringUtils.isEmpty(ticket.getAttribute(CLASS_ID))) { MXStringType classId = new MXStringType(); classId.setValue(ticket.getAttribute(CLASS_ID)); incident.setCLASS(classId); if (!StringUtils.isEmpty(ticket.getAttribute(CLASS_STRUCTURE_ID))) { MXStringType classStructureId = new MXStringType(); classStructureId.setValue(ticket.getAttribute(CLASS_STRUCTURE_ID)); incident.setCLASSSTRUCTUREID(classStructureId); if (!StringUtils.isEmpty(ticket.getAttribute(COMMODITY))) { MXStringType commodity = new MXStringType(); commodity.setValue(ticket.getAttribute(COMMODITY)); incident.setCOMMODITY(commodity); if (!StringUtils.isEmpty(ticket.getSummary())) { MXStringType description = new MXStringType(); description.setValue(ticket.getSummary()); incident.setDESCRIPTION(description);
if ((newTicket.getId() == null) ) { newTicket.setId(newTicketID); LOG.debug("created new ticket: {}", newTicket.getId()); currentTicket = get(newTicket.getId()); LOG.debug("updating existing ticket: {}", currentTicket.getId()); if (currentTicket.getState() != newTicket.getState()) { updateRtStatus(newTicket); } else {
private String getNotes(Ticket ticket) { StringBuffer notes = new StringBuffer("OpenNMS generated ticket by user: "); notes.append(ticket.getUser()); notes.append("\n"); notes.append("\n"); if (ticket.getAttribute(ATTRIBUTE_USER_COMMENT_ID) != null ) { notes.append("OpenNMS user comment: "); notes.append(ticket.getAttribute(ATTRIBUTE_USER_COMMENT_ID)); notes.append("\n"); notes.append("\n"); } notes.append("OpenNMS logmsg: "); notes.append(ticket.getSummary()); notes.append("\n"); notes.append("\n"); notes.append("OpenNMS descr: "); notes.append(ticket.getDetails()); return notes.toString(); }
private TicketIDAndNumber newOTRSTicket(Ticket newTicket, TicketServicePort_PortType port, Credentials creds) throws RemoteException { TicketIDAndNumber idAndNumber = null; TicketCore newOtrsTicket = new TicketCore(); newOtrsTicket.setTitle(newTicket.getSummary().replaceAll("\\<.*?\\>", "")); newOtrsTicket.setUser(m_configDao.getDefaultUser()); newOtrsTicket.setStateID(openNMSToOTRSState(newTicket.getState())); // All OTRS ticket fields from defaults newOtrsTicket.setQueue(m_configDao.getQueue()); newOtrsTicket.setPriority(m_configDao.getPriority()); newOtrsTicket.setLock(m_configDao.getLock()); newOtrsTicket.setOwnerID(m_configDao.getOwnerID()); idAndNumber = port.ticketCreate(newOtrsTicket, creds); return idAndNumber; }
@Override public void saveOrUpdate(Ticket ticketToUpdateOrCreate) throws PluginException { Objects.requireNonNull(ticketToUpdateOrCreate, "The provided ticket must not be null"); if (ticketToUpdateOrCreate.getId() == null) { create(ticketToUpdateOrCreate); } else { update(ticketToUpdateOrCreate); } }
private void newOTRSArticle(Long otrsTicketNumber, Ticket newTicket, TicketServicePort_PortType port, Credentials creds) throws RemoteException { ArticleCore newOtrsArticle = new ArticleCore(); // All OTRS article fields from ticket LOG.debug("Adding a new article to ticket: {}", otrsTicketNumber); newOtrsArticle.setBody(newTicket.getDetails()); newOtrsArticle.setTicketNumber(otrsTicketNumber); // TODO: Could remove this once we have the userid reliably in the the ticket newOtrsArticle.setFrom(m_configDao.getArticleFrom()); newOtrsArticle.setUser(m_configDao.getDefaultUser()); newOtrsArticle.setSubject(newTicket.getSummary().replaceAll("\\<.*?\\>", "")); // All OTRS article fields from defaults newOtrsArticle.setArticleType(m_configDao.getArticleType()); newOtrsArticle.setSenderType(m_configDao.getArticleSenderType()); newOtrsArticle.setContentType(m_configDao.getArticleContentType()); newOtrsArticle.setHistoryType(m_configDao.getArticleHistoryType()); newOtrsArticle.setHistoryComment(m_configDao.getArticleHistoryComment()); port.articleCreate(newOtrsArticle, creds); }
/** {@inheritDoc} */ @Override public void updateTicketForAlarm(int alarmId, String ticketId) { OnmsAlarm alarm = m_alarmDao.get(alarmId); if (alarm == null) { LOG.error("No alarm with id {} was found. Ticket with id '{}' will not be updated.", alarmId, ticketId); return; } Ticket ticket = null; try { ticket = m_ticketerPlugin.get(ticketId); if (ticket.getState() == Ticket.State.CANCELLED) { alarm.setTTicketState(TroubleTicketState.CANCELLED); } else if (ticket.getState() == Ticket.State.CLOSED) { alarm.setTTicketState(TroubleTicketState.CLOSED); } else if (ticket.getState() == Ticket.State.OPEN) { alarm.setTTicketState(TroubleTicketState.OPEN); } else { alarm.setTTicketState(TroubleTicketState.OPEN); } } catch (PluginException e) { alarm.setTTicketState(TroubleTicketState.UPDATE_FAILED); LOG.error("Unable to update ticket for alarm: {}", e.getMessage()); m_eventIpcManager.sendNow(createEvent(e.getMessage())); } m_alarmDao.saveOrUpdate(alarm); }
private void setTicketState(String ticketId, State state) throws PluginException { try { Ticket ticket = m_ticketerPlugin.get(ticketId); ticket.setState(state); m_ticketerPlugin.saveOrUpdate(ticket); } catch (PluginException e) { LOG.error("Unable to set ticket state"); throw e; } }
Ticket ticket = new Ticket(); KieSession session = m_kieBase.newKieSession(); try {
ticket.setSituation(true); Set<OnmsAlarm> relatedAlarms = alarm.getRelatedAlarms(); populateRelatedAlarmsForTicket(ticket, relatedAlarms); alarm.setTTicketId(ticket.getId()); alarm.setTTicketState(TroubleTicketState.OPEN); } catch (PluginException e) {
public class UserService { private TicketDAO ticketDAO; private UserDAO userDAO; public void saveTicketsForUser(User user){ if(user.getId()==null){ //if user is not saved in database userDAO.save(user); }else{ //if you have this client in database, you don't need to save client } for(Ticket ticket: user.getBookedTickets()){ ticket.setUser(user); ticketDAO.save(ticket); } }
private void save(Ticket newTicket) throws PluginException { HPD_IncidentInterface_Create_WSPortTypePortType port = getCreateTicketServicePort(m_createportname,m_createendpoint); try { String incident_number = port.helpDesk_Submit_Service(getRemedyAuthenticationHeader(), getRemedyCreateInputMap(newTicket)).getIncident_Number(); LOG.debug("created new remedy ticket with reported incident number: {}", incident_number); newTicket.setId(incident_number); } catch (RemoteException e) { e.printStackTrace(); throw new PluginException("Problem saving ticket", e); } }