org.opennms.web.rest
Class RequisitionRestService

java.lang.Object
  extended by org.opennms.web.rest.OnmsRestService
      extended by org.opennms.web.rest.RequisitionRestService

@Component
@PerRequest
@Scope(value="prototype")
public class RequisitionRestService
extends OnmsRestService

RESTful service to the OpenNMS Provisioning Groups. In this API, these "groups" of nodes are aptly named and treated as requisitions.

This current implementation supports CRUD operations for managing provisioning requisitions. Requisitions are first POSTed and no provisioning (import) operations are taken. This is done so that a) the XML can be verified and b) so that the operations can happen at a later time. They are moved to the deployed state (put in the active requisition repository) when an import is run.

Example 1: Create a new requisition Note: The foreign-source attribute typically has a 1 to 1 relationship to a provisioning group and to the name used in this requisition. The relationship is implied by name and it is best practice to use the same for all three. If a foreign source definition exists with the same name, it will be used during the provisioning (import) operations in lieu of the default foreign source

curl -X POST \
     -H "Content-Type: application/xml" \
     -d "<?xml version="1.0" encoding="UTF-8"?>
         <model-import xmlns="http://xmlns.opennms.org/xsd/config/model-import"
             date-stamp="2009-03-07T17:56:53.123-05:00"
             last-import="2009-03-07T17:56:53.117-05:00" foreign-source="site1">
           <node node-label="p-brane" foreign-id="1" >
             <interface ip-addr="10.0.1.3" descr="en1" status="1" snmp-primary="P">
               <monitored-service service-name="ICMP"/>
               <monitored-service service-name="SNMP"/>
             </interface>
             <category name="Production"/>
             <category name="Routers"/>
           </node>
         </model-import>" \
     -u admin:admin \
     http://localhost:8980/opennms/rest/requisitions

Example 2: Query all deployed requisitions

curl -X GET \
     -H "Content-Type: application/xml" \
     -u admin:admin \
        http://localhost:8980/opennms/rest/requisitions/deployed \
        2>/dev/null \
        |xmllint --format -

Since:
1.8.1
Version:
$Id: $
Author:
Benjamin Reed

Nested Class Summary
 
Nested classes/interfaces inherited from class org.opennms.web.rest.OnmsRestService
OnmsRestService.ComparisonOperation
 
Field Summary
 
Fields inherited from class org.opennms.web.rest.OnmsRestService
DEFAULT_LIMIT
 
Constructor Summary
RequisitionRestService()
           
 
Method Summary
 javax.ws.rs.core.Response addOrReplaceInterface(String foreignSource, String foreignId, RequisitionInterface iface)
          Updates or adds an interface to a node
 javax.ws.rs.core.Response addOrReplaceNode(String foreignSource, RequisitionNode node)
          Updates or adds a node to a requisition
 javax.ws.rs.core.Response addOrReplaceNodeAssetParameter(String foreignSource, String foreignId, RequisitionAsset asset)
          Updates or adds an asset parameter to a node
 javax.ws.rs.core.Response addOrReplaceNodeCategory(String foreignSource, String foreignId, RequisitionCategory category)
          Updates or adds a category to a node
 javax.ws.rs.core.Response addOrReplaceRequisition(Requisition requisition)
          Updates or adds a complete requisition with foreign source "foreignSource"
 javax.ws.rs.core.Response addOrReplaceService(String foreignSource, String foreignId, String ipAddress, RequisitionMonitoredService service)
          Updates or adds a service to an interface
 javax.ws.rs.core.Response deleteAssetParameter(String foreignSource, String foreignId, String parameter)
          deleteAssetParameter
 javax.ws.rs.core.Response deleteCategory(String foreignSource, String foreignId, String category)
          deleteCategory
 javax.ws.rs.core.Response deleteDeployedRequisition(String foreignSource)
          Deletes the deployed requisition with foreign source "foreignSource"
 javax.ws.rs.core.Response deleteInterface(String foreignSource, String foreignId, String ipAddress)
          deleteInterface
 javax.ws.rs.core.Response deleteInterfaceService(String foreignSource, String foreignId, String ipAddress, String service)
          deleteInterfaceService
 javax.ws.rs.core.Response deleteNode(String foreignSource, String foreignId)
          Delete the node with the given foreign ID for the specified foreign source
 javax.ws.rs.core.Response deletePendingRequisition(String foreignSource)
          Deletes the pending requisition with foreign source "foreignSource"
 RequisitionAsset getAssetParameter(String foreignSource, String foreignId, String parameter)
          Returns the requested category for a given node in the specified foreign source
 RequisitionAssetCollection getAssetParameters(String foreignSource, String foreignId)
          Returns a collection of assets for a given node in the specified foreign source
 RequisitionCategoryCollection getCategories(String foreignSource, String foreignId)
          Returns a collection of categories for a given node in the specified foreign source
 RequisitionCategory getCategory(String foreignSource, String foreignId, String category)
          Returns the requested category for a given node in the specified foreign source
 int getDeployedCount()
          get a plain text numeric string of the number of deployed requisitions
 RequisitionCollection getDeployedRequisitions()
          Get all the deployed requisitions
 RequisitionInterface getInterfaceForNode(String foreignSource, String foreignId, String ipAddress)
          Returns the interface with the given foreign source/foreignid/ipaddress combination.
 RequisitionInterfaceCollection getInterfacesForNode(String foreignSource, String foreignId)
          Returns a collection of interfaces for a given node in the specified foreign source
 RequisitionNode getNode(String foreignSource, String foreignId)
          Returns the node with the foreign ID specified for the given foreign source
 RequisitionNodeCollection getNodes(String foreignSource)
          Returns all nodes for a given requisition
 int getPendingCount()
          get a plain text numeric string of the number of pending requisitions
 Requisition getRequisition(String foreignSource)
          getRequisition
 RequisitionCollection getRequisitions()
          Get all the pending requisitions
 RequisitionMonitoredService getServiceForInterface(String foreignSource, String foreignId, String ipAddress, String service)
          Returns a service for a given foreignSource/foreignId/interface/service-name combination.
 RequisitionMonitoredServiceCollection getServicesForInterface(String foreignSource, String foreignId, String ipAddress)
          Returns a collection of services for a given foreignSource/foreignId/interface combination.
 javax.ws.rs.core.Response importRequisition(String foreignSource, Boolean suppressOutput)
          importRequisition
 String requisitionExists(String foreignSource)
           
 javax.ws.rs.core.Response updateInterface(String foreignSource, String foreignId, String ipAddress, MultivaluedMapImpl params)
          Updates a specific interface
 javax.ws.rs.core.Response updateNode(String foreignSource, String foreignId, MultivaluedMapImpl params)
          Updates the node with foreign id "foreignId" in foreign source "foreignSource"
 javax.ws.rs.core.Response updateRequisition(String foreignSource, MultivaluedMapImpl params)
          Updates the requisition with foreign source "foreignSource"
 
Methods inherited from class org.opennms.web.rest.OnmsRestService
addFiltersToCriteria, addOrdering, addOrdering, convertNameToPropertyName, getDistinctIdCriteria, log, setLimitOffset, setLimitOffset, setLimitOffset, setProperties, throwException
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RequisitionRestService

public RequisitionRestService()
Method Detail

getDeployedCount

public int getDeployedCount()
get a plain text numeric string of the number of deployed requisitions

Returns:
a int.

getDeployedRequisitions

public RequisitionCollection getDeployedRequisitions()
                                              throws ParseException
Get all the deployed requisitions

Returns:
a RequisitionCollection object.
Throws:
ParseException - if any.

getRequisitions

public RequisitionCollection getRequisitions()
                                      throws ParseException
Get all the pending requisitions

Returns:
a RequisitionCollection object.
Throws:
ParseException - if any.

getPendingCount

public int getPendingCount()
get a plain text numeric string of the number of pending requisitions

Returns:
a int.

getRequisition

public Requisition getRequisition(String foreignSource)

getRequisition

Parameters:
foreignSource - a String object.
Returns:
a Requisition object.

requisitionExists

public String requisitionExists(String foreignSource)

getNodes

public RequisitionNodeCollection getNodes(String foreignSource)
                                   throws ParseException
Returns all nodes for a given requisition

Parameters:
foreignSource - a String object.
Returns:
a RequisitionNodeCollection object.
Throws:
ParseException - if any.

getNode

public RequisitionNode getNode(String foreignSource,
                               String foreignId)
                        throws ParseException
Returns the node with the foreign ID specified for the given foreign source

Parameters:
foreignSource - a String object.
foreignId - a String object.
Returns:
a RequisitionNode object.
Throws:
ParseException - if any.

getInterfacesForNode

public RequisitionInterfaceCollection getInterfacesForNode(String foreignSource,
                                                           String foreignId)
                                                    throws ParseException
Returns a collection of interfaces for a given node in the specified foreign source

Parameters:
foreignSource - a String object.
foreignId - a String object.
Returns:
a RequisitionInterfaceCollection object.
Throws:
ParseException - if any.

getInterfaceForNode

public RequisitionInterface getInterfaceForNode(String foreignSource,
                                                String foreignId,
                                                String ipAddress)
                                         throws ParseException
Returns the interface with the given foreign source/foreignid/ipaddress combination.

Parameters:
foreignSource - a String object.
foreignId - a String object.
ipAddress - a String object.
Returns:
a RequisitionInterface object.
Throws:
ParseException - if any.

getServicesForInterface

public RequisitionMonitoredServiceCollection getServicesForInterface(String foreignSource,
                                                                     String foreignId,
                                                                     String ipAddress)
                                                              throws ParseException
Returns a collection of services for a given foreignSource/foreignId/interface combination.

Parameters:
foreignSource - a String object.
foreignId - a String object.
ipAddress - a String object.
Returns:
a RequisitionMonitoredServiceCollection object.
Throws:
ParseException - if any.

getServiceForInterface

public RequisitionMonitoredService getServiceForInterface(String foreignSource,
                                                          String foreignId,
                                                          String ipAddress,
                                                          String service)
                                                   throws ParseException
Returns a service for a given foreignSource/foreignId/interface/service-name combination.

Parameters:
foreignSource - a String object.
foreignId - a String object.
ipAddress - a String object.
service - a String object.
Returns:
a RequisitionMonitoredService object.
Throws:
ParseException - if any.

getCategories

public RequisitionCategoryCollection getCategories(String foreignSource,
                                                   String foreignId)
                                            throws ParseException
Returns a collection of categories for a given node in the specified foreign source

Parameters:
foreignSource - a String object.
foreignId - a String object.
Returns:
a RequisitionCategoryCollection object.
Throws:
ParseException - if any.

getCategory

public RequisitionCategory getCategory(String foreignSource,
                                       String foreignId,
                                       String category)
                                throws ParseException
Returns the requested category for a given node in the specified foreign source

Parameters:
foreignSource - a String object.
foreignId - a String object.
category - a String object.
Returns:
a RequisitionCategory object.
Throws:
ParseException - if any.

getAssetParameters

public RequisitionAssetCollection getAssetParameters(String foreignSource,
                                                     String foreignId)
                                              throws ParseException
Returns a collection of assets for a given node in the specified foreign source

Parameters:
foreignSource - a String object.
foreignId - a String object.
Returns:
a RequisitionAssetCollection object.
Throws:
ParseException - if any.

getAssetParameter

public RequisitionAsset getAssetParameter(String foreignSource,
                                          String foreignId,
                                          String parameter)
                                   throws ParseException
Returns the requested category for a given node in the specified foreign source

Parameters:
foreignSource - a String object.
foreignId - a String object.
parameter - a String object.
Returns:
a RequisitionAsset object.
Throws:
ParseException - if any.

addOrReplaceRequisition

@Transactional
public javax.ws.rs.core.Response addOrReplaceRequisition(Requisition requisition)
Updates or adds a complete requisition with foreign source "foreignSource"

Parameters:
requisition - a Requisition object.
Returns:
a Response object.

addOrReplaceNode

@Transactional
public javax.ws.rs.core.Response addOrReplaceNode(String foreignSource,
                                                                RequisitionNode node)
Updates or adds a node to a requisition

Parameters:
foreignSource - a String object.
node - a RequisitionNode object.
Returns:
a Response object.

addOrReplaceInterface

@Transactional
public javax.ws.rs.core.Response addOrReplaceInterface(String foreignSource,
                                                                     String foreignId,
                                                                     RequisitionInterface iface)
Updates or adds an interface to a node

Parameters:
foreignSource - a String object.
foreignId - a String object.
iface - a RequisitionInterface object.
Returns:
a Response object.

addOrReplaceService

@Transactional
public javax.ws.rs.core.Response addOrReplaceService(String foreignSource,
                                                                   String foreignId,
                                                                   String ipAddress,
                                                                   RequisitionMonitoredService service)
Updates or adds a service to an interface

Parameters:
foreignSource - a String object.
foreignId - a String object.
ipAddress - a String object.
service - a RequisitionMonitoredService object.
Returns:
a Response object.

addOrReplaceNodeCategory

@Transactional
public javax.ws.rs.core.Response addOrReplaceNodeCategory(String foreignSource,
                                                                        String foreignId,
                                                                        RequisitionCategory category)
Updates or adds a category to a node

Parameters:
foreignSource - a String object.
foreignId - a String object.
category - a RequisitionCategory object.
Returns:
a Response object.

addOrReplaceNodeAssetParameter

@Transactional
public javax.ws.rs.core.Response addOrReplaceNodeAssetParameter(String foreignSource,
                                                                              String foreignId,
                                                                              RequisitionAsset asset)
Updates or adds an asset parameter to a node

Parameters:
foreignSource - a String object.
foreignId - a String object.
asset - a RequisitionAsset object.
Returns:
a Response object.

importRequisition

@Transactional
public javax.ws.rs.core.Response importRequisition(String foreignSource,
                                                                 Boolean suppressOutput)

importRequisition

Parameters:
foreignSource - a String object.
Returns:
a Response object.

updateRequisition

@Transactional
public javax.ws.rs.core.Response updateRequisition(String foreignSource,
                                                                 MultivaluedMapImpl params)
Updates the requisition with foreign source "foreignSource"

Parameters:
foreignSource - a String object.
params - a MultivaluedMapImpl object.
Returns:
a Response object.

updateNode

@Transactional
public javax.ws.rs.core.Response updateNode(String foreignSource,
                                                          String foreignId,
                                                          MultivaluedMapImpl params)
Updates the node with foreign id "foreignId" in foreign source "foreignSource"

Parameters:
foreignSource - a String object.
foreignId - a String object.
params - a MultivaluedMapImpl object.
Returns:
a Response object.

updateInterface

@Transactional
public javax.ws.rs.core.Response updateInterface(String foreignSource,
                                                               String foreignId,
                                                               String ipAddress,
                                                               MultivaluedMapImpl params)
Updates a specific interface

Parameters:
foreignSource - a String object.
foreignId - a String object.
ipAddress - a String object.
params - a MultivaluedMapImpl object.
Returns:
a Response object.

deletePendingRequisition

@Transactional
public javax.ws.rs.core.Response deletePendingRequisition(String foreignSource)
Deletes the pending requisition with foreign source "foreignSource"

Parameters:
foreignSource - a String object.
Returns:
a Response object.

deleteDeployedRequisition

@Transactional
public javax.ws.rs.core.Response deleteDeployedRequisition(String foreignSource)
Deletes the deployed requisition with foreign source "foreignSource"

Parameters:
foreignSource - a String object.
Returns:
a Response object.

deleteNode

@Transactional
public javax.ws.rs.core.Response deleteNode(String foreignSource,
                                                          String foreignId)
Delete the node with the given foreign ID for the specified foreign source

Parameters:
foreignSource - a String object.
foreignId - a String object.
Returns:
a Response object.

deleteInterface

@Transactional
public javax.ws.rs.core.Response deleteInterface(String foreignSource,
                                                               String foreignId,
                                                               String ipAddress)

deleteInterface

Parameters:
foreignSource - a String object.
foreignId - a String object.
ipAddress - a String object.
Returns:
a Response object.

deleteInterfaceService

@Transactional
public javax.ws.rs.core.Response deleteInterfaceService(String foreignSource,
                                                                      String foreignId,
                                                                      String ipAddress,
                                                                      String service)

deleteInterfaceService

Parameters:
foreignSource - a String object.
foreignId - a String object.
ipAddress - a String object.
service - a String object.
Returns:
a Response object.

deleteCategory

@Transactional
public javax.ws.rs.core.Response deleteCategory(String foreignSource,
                                                              String foreignId,
                                                              String category)

deleteCategory

Parameters:
foreignSource - a String object.
foreignId - a String object.
category - a String object.
Returns:
a Response object.

deleteAssetParameter

@Transactional
public javax.ws.rs.core.Response deleteAssetParameter(String foreignSource,
                                                                    String foreignId,
                                                                    String parameter)

deleteAssetParameter

Parameters:
foreignSource - a String object.
foreignId - a String object.
parameter - a String object.
Returns:
a Response object.


Copyright © 2011. All Rights Reserved.