Search in sources :

Example 1 with TicketIDAndNumber

use of org.opennms.integration.otrs.ticketservice.TicketIDAndNumber in project opennms by OpenNMS.

the class OtrsTicketerPlugin method saveOrUpdate.

/** {@inheritDoc} */
@Override
public void saveOrUpdate(Ticket newTicket) throws PluginException {
    TicketIDAndNumber idAndNumber = null;
    TicketServicePort_PortType port = getTicketServicePort(m_endpoint);
    Ticket currentTicket = null;
    Credentials creds = new Credentials();
    creds.setUser(m_configDao.getUserName());
    creds.setPass(m_configDao.getPassword());
    try {
        if ((newTicket.getId() == null)) {
            idAndNumber = newOTRSTicket(newTicket, port, creds);
            newTicket.setId(String.valueOf(idAndNumber.getTicketNumber()));
            LOG.debug("created new ticket: {}", newTicket.getId());
            newOTRSArticle(idAndNumber.getTicketNumber(), newTicket, port, creds);
        } else {
            currentTicket = get(newTicket.getId());
            LOG.debug("updating existing ticket : {}", currentTicket.getId());
            if (currentTicket.getState() != newTicket.getState()) {
                updateOTRSState(newTicket, port, creds);
                updateOTRSArticle(Long.parseLong(currentTicket.getId()), newTicket, port, creds);
            } else {
            // There is no else at the moment
            // Tickets are _only_ updated with new state
            }
        }
    } catch (RemoteException e) {
        LOG.error("Failed to create or update OTRS ticket", e);
        throw new PluginException("Failed to create or update OTRS ticket");
    }
}
Also used : TicketServicePort_PortType(org.opennms.integration.otrs.ticketservice.TicketServicePort_PortType) RemoteException(java.rmi.RemoteException) Credentials(org.opennms.integration.otrs.ticketservice.Credentials) TicketIDAndNumber(org.opennms.integration.otrs.ticketservice.TicketIDAndNumber)

Example 2 with TicketIDAndNumber

use of org.opennms.integration.otrs.ticketservice.TicketIDAndNumber in project opennms by OpenNMS.

the class OtrsTicketerPluginTest method testGet.

public void testGet() {
    TicketIDAndNumber idAndNumber = null;
    Ticket newTicket = null;
    String summary = new String("Ticket created by testGet()");
    String details = new String("This ticketwas created by OtrsTicketerPluginTest");
    try {
        idAndNumber = createTicketAndArticle(summary, details);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    // now construct a ticket by hand.
    Ticket ticket = new Ticket();
    ticket.setId(String.valueOf(idAndNumber.getTicketNumber()));
    ticket.setState(Ticket.State.OPEN);
    ticket.setSummary(summary);
    ticket.setDetails(details);
    ticket.setUser(defaultUser);
    try {
        newTicket = m_ticketer.get(ticket.getId());
    } catch (PluginException e) {
        e.printStackTrace();
    }
    assertTicketEquals(ticket, newTicket);
}
Also used : Ticket(org.opennms.api.integration.ticketing.Ticket) PluginException(org.opennms.api.integration.ticketing.PluginException) TicketIDAndNumber(org.opennms.integration.otrs.ticketservice.TicketIDAndNumber)

Example 3 with TicketIDAndNumber

use of org.opennms.integration.otrs.ticketservice.TicketIDAndNumber in project opennms by OpenNMS.

the class OtrsTicketerPluginTest method createTicketAndArticle.

// This is just to bootstrap a saved ticket so that we can get it back later
private TicketIDAndNumber createTicketAndArticle(String ticketSubject, String articleBody) throws InterruptedException {
    TicketIDAndNumber idAndNumber = null;
    m_configDao = new DefaultOtrsConfigDao();
    TicketCore otrsTicket = new TicketCore();
    Credentials creds = new Credentials(m_configDao.getUserName(), m_configDao.getPassword());
    otrsTicket.setLock(m_configDao.getLock());
    otrsTicket.setQueue(m_configDao.getQueue());
    otrsTicket.setPriority(m_configDao.getPriority());
    otrsTicket.setState(m_configDao.getState());
    otrsTicket.setOwnerID(m_configDao.getOwnerID());
    otrsTicket.setUser(defaultUser);
    otrsTicket.setTitle(ticketSubject);
    Integer articleId = null;
    TicketServiceLocator service = new TicketServiceLocator();
    service.setTicketServicePortEndpointAddress(m_configDao.getEndpoint());
    TicketServicePort_PortType port = null;
    try {
        port = service.getTicketServicePort();
    } catch (ServiceException e1) {
        e1.printStackTrace();
    }
    try {
        idAndNumber = port.ticketCreate(otrsTicket, creds);
    } catch (RemoteException e) {
        e.printStackTrace();
    }
    ArticleCore otrsArticle = new ArticleCore();
    otrsArticle.setArticleType(m_configDao.getArticleType());
    otrsArticle.setSenderType(m_configDao.getArticleSenderType());
    otrsArticle.setContentType(m_configDao.getArticleContentType());
    otrsArticle.setHistoryType(m_configDao.getArticleHistoryType());
    otrsArticle.setHistoryComment(m_configDao.getArticleHistoryComment());
    otrsArticle.setSenderType(m_configDao.getArticleSenderType());
    otrsArticle.setSubject(defaultArticleSubject);
    otrsArticle.setFrom(m_configDao.getArticleFrom());
    otrsArticle.setBody(defaultArticleBody);
    otrsArticle.setUser(defaultUser);
    otrsArticle.setTicketID(idAndNumber.getTicketID());
    otrsArticle.setBody(articleBody);
    try {
        articleId = port.articleCreate(otrsArticle, creds);
        assertNotNull(articleId);
    } catch (RemoteException e) {
        e.printStackTrace();
    }
    return idAndNumber;
}
Also used : ArticleCore(org.opennms.integration.otrs.ticketservice.ArticleCore) ServiceException(javax.xml.rpc.ServiceException) DefaultOtrsConfigDao(org.opennms.netmgt.ticketer.otrs.common.DefaultOtrsConfigDao) TicketServicePort_PortType(org.opennms.integration.otrs.ticketservice.TicketServicePort_PortType) RemoteException(java.rmi.RemoteException) TicketCore(org.opennms.integration.otrs.ticketservice.TicketCore) TicketServiceLocator(org.opennms.integration.otrs.ticketservice.TicketServiceLocator) Credentials(org.opennms.integration.otrs.ticketservice.Credentials) TicketIDAndNumber(org.opennms.integration.otrs.ticketservice.TicketIDAndNumber)

Example 4 with TicketIDAndNumber

use of org.opennms.integration.otrs.ticketservice.TicketIDAndNumber in project opennms by OpenNMS.

the class OtrsTicketerPlugin method newOTRSTicket.

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;
}
Also used : TicketCore(org.opennms.integration.otrs.ticketservice.TicketCore) TicketIDAndNumber(org.opennms.integration.otrs.ticketservice.TicketIDAndNumber)

Aggregations

TicketIDAndNumber (org.opennms.integration.otrs.ticketservice.TicketIDAndNumber)4 RemoteException (java.rmi.RemoteException)2 Credentials (org.opennms.integration.otrs.ticketservice.Credentials)2 TicketCore (org.opennms.integration.otrs.ticketservice.TicketCore)2 TicketServicePort_PortType (org.opennms.integration.otrs.ticketservice.TicketServicePort_PortType)2 ServiceException (javax.xml.rpc.ServiceException)1 PluginException (org.opennms.api.integration.ticketing.PluginException)1 Ticket (org.opennms.api.integration.ticketing.Ticket)1 ArticleCore (org.opennms.integration.otrs.ticketservice.ArticleCore)1 TicketServiceLocator (org.opennms.integration.otrs.ticketservice.TicketServiceLocator)1 DefaultOtrsConfigDao (org.opennms.netmgt.ticketer.otrs.common.DefaultOtrsConfigDao)1