Class RequisitionRestService
- java.lang.Object
-
- org.opennms.web.rest.v1.OnmsRestService
-
- org.opennms.web.rest.v1.RequisitionRestService
-
@Component("requisitionRestService") 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.
- GET/PUT/POST pending requisitions
- GET pending and deployed count
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.v1.OnmsRestService
OnmsRestService.ComparisonOperation
-
-
Field Summary
-
Fields inherited from class org.opennms.web.rest.v1.OnmsRestService
DEFAULT_LIMIT
-
-
Constructor Summary
Constructors Constructor Description RequisitionRestService()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description javax.ws.rs.core.Response
addOrReplaceInterface(javax.ws.rs.core.UriInfo uriInfo, String foreignSource, String foreignId, RequisitionInterface iface)
Updates or adds an interface to a nodejavax.ws.rs.core.Response
addOrReplaceNode(javax.ws.rs.core.UriInfo uriInfo, String foreignSource, RequisitionNode node)
Updates or adds a node to a requisitionjavax.ws.rs.core.Response
addOrReplaceNodeAssetParameter(javax.ws.rs.core.UriInfo uriInfo, String foreignSource, String foreignId, RequisitionAsset asset)
Updates or adds an asset parameter to a nodejavax.ws.rs.core.Response
addOrReplaceNodeCategory(javax.ws.rs.core.UriInfo uriInfo, String foreignSource, String foreignId, RequisitionCategory category)
Updates or adds a category to a nodejavax.ws.rs.core.Response
addOrReplaceRequisition(javax.ws.rs.core.UriInfo uriInfo, Requisition requisition)
Updates or adds a complete requisition with foreign source "foreignSource"javax.ws.rs.core.Response
addOrReplaceService(javax.ws.rs.core.UriInfo uriInfo, String foreignSource, String foreignId, String ipAddress, RequisitionMonitoredService service)
Updates or adds a service to an interfacejavax.ws.rs.core.Response
deleteAssetParameter(String foreignSource, String foreignId, String parameter)
deleteAssetParameterjavax.ws.rs.core.Response
deleteCategory(String foreignSource, String foreignId, String category)
deleteCategoryjavax.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)
deleteInterfacejavax.ws.rs.core.Response
deleteInterfaceService(String foreignSource, String foreignId, String ipAddress, String service)
deleteInterfaceServicejavax.ws.rs.core.Response
deleteNode(String foreignSource, String foreignId)
Delete the node with the given foreign ID for the specified foreign sourcejavax.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 sourceRequisitionAssetCollection
getAssetParameters(String foreignSource, String foreignId)
Returns a collection of assets for a given node in the specified foreign sourceRequisitionCategoryCollection
getCategories(String foreignSource, String foreignId)
Returns a collection of categories for a given node in the specified foreign sourceRequisitionCategory
getCategory(String foreignSource, String foreignId, String category)
Returns the requested category for a given node in the specified foreign sourceString
getDeployedCount()
get a plain text numeric string of the number of deployed requisitionsRequisitionCollection
getDeployedRequisitions()
Get all the deployed requisitionsDeployedStats
getDeployedStats()
get the statistics for the deployed requisitionsDeployedRequisitionStats
getDeployedStats(String foreignSource)
get the statistics for a given deployed requisitionString
getForeignSourceRepositoryStrategy()
get a plain text with the current selected foreign source repository strategyRequisitionInterface
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 sourceRequisitionNode
getNode(String foreignSource, String foreignId)
Returns the node with the foreign ID specified for the given foreign sourceRequisitionNodeCollection
getNodes(String foreignSource)
Returns all nodes for a given requisitionString
getPendingCount()
get a plain text numeric string of the number of pending requisitionsRequisition
getRequisition(String foreignSource)
getRequisitionRequisitionCollection
getRequisitions()
Get all the pending requisitionsRequisitionMonitoredService
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(javax.ws.rs.core.UriInfo uriInfo, String foreignSource, String rescanExisting)
importRequisitionprotected void
tearDown()
javax.ws.rs.core.Response
updateInterface(javax.ws.rs.core.UriInfo uriInfo, String foreignSource, String foreignId, String ipAddress, MultivaluedMapImpl params)
Updates a specific interfacejavax.ws.rs.core.Response
updateNode(javax.ws.rs.core.UriInfo uriInfo, String foreignSource, String foreignId, MultivaluedMapImpl params)
Updates the node with foreign id "foreignId" in foreign source "foreignSource"javax.ws.rs.core.Response
updateRequisition(javax.ws.rs.core.UriInfo uriInfo, String foreignSource, MultivaluedMapImpl params)
Updates the requisition with foreign source "foreignSource"-
Methods inherited from class org.opennms.web.rest.v1.OnmsRestService
applyQueryFilters, applyQueryFilters, getBadRequestResponse, getBeanWrapperForClass, getException, getException, getNumericValue, getRedirectUri, readLock, readUnlock, removeParameter, removeParameter, setProperties, writeLock, writeUnlock
-
-
-
-
Method Detail
-
tearDown
@PreDestroy protected void tearDown()
-
getDeployedCount
public String getDeployedCount()
get a plain text numeric string of the number of deployed requisitions- Returns:
- a int.
-
getDeployedStats
public DeployedStats getDeployedStats()
get the statistics for the deployed requisitions- Returns:
- a DeployedStats.
-
getDeployedStats
public DeployedRequisitionStats getDeployedStats(String foreignSource)
get the statistics for a given deployed requisition- Returns:
- a DeployedRequisitionStats.
-
getForeignSourceRepositoryStrategy
public String getForeignSourceRepositoryStrategy()
get a plain text with the current selected foreign source repository strategy- Returns:
- the current strategy.
-
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 String 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
- aString
object.- Returns:
- a
Requisition
object.
-
getNodes
public RequisitionNodeCollection getNodes(String foreignSource) throws ParseException
Returns all nodes for a given requisition- Parameters:
foreignSource
- aString
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
- aString
object.foreignId
- aString
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
- aString
object.foreignId
- aString
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
- aString
object.foreignId
- aString
object.ipAddress
- aString
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
- aString
object.foreignId
- aString
object.ipAddress
- aString
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
- aString
object.foreignId
- aString
object.ipAddress
- aString
object.service
- aString
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
- aString
object.foreignId
- aString
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
- aString
object.foreignId
- aString
object.category
- aString
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
- aString
object.foreignId
- aString
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
- aString
object.foreignId
- aString
object.parameter
- aString
object.- Returns:
- a
RequisitionAsset
object. - Throws:
ParseException
- if any.
-
addOrReplaceRequisition
@Transactional public javax.ws.rs.core.Response addOrReplaceRequisition(@Context javax.ws.rs.core.UriInfo uriInfo, Requisition requisition)
Updates or adds a complete requisition with foreign source "foreignSource"- Parameters:
requisition
- aRequisition
object.- Returns:
- a
Response
object.
-
addOrReplaceNode
@Transactional public javax.ws.rs.core.Response addOrReplaceNode(@Context javax.ws.rs.core.UriInfo uriInfo, String foreignSource, RequisitionNode node)
Updates or adds a node to a requisition- Parameters:
foreignSource
- aString
object.node
- aRequisitionNode
object.- Returns:
- a
Response
object.
-
addOrReplaceInterface
@Transactional public javax.ws.rs.core.Response addOrReplaceInterface(@Context javax.ws.rs.core.UriInfo uriInfo, String foreignSource, String foreignId, RequisitionInterface iface)
Updates or adds an interface to a node- Parameters:
foreignSource
- aString
object.foreignId
- aString
object.iface
- aRequisitionInterface
object.- Returns:
- a
Response
object.
-
addOrReplaceService
@Transactional public javax.ws.rs.core.Response addOrReplaceService(@Context javax.ws.rs.core.UriInfo uriInfo, String foreignSource, String foreignId, String ipAddress, RequisitionMonitoredService service)
Updates or adds a service to an interface- Parameters:
foreignSource
- aString
object.foreignId
- aString
object.ipAddress
- aString
object.service
- aRequisitionMonitoredService
object.- Returns:
- a
Response
object.
-
addOrReplaceNodeCategory
@Transactional public javax.ws.rs.core.Response addOrReplaceNodeCategory(@Context javax.ws.rs.core.UriInfo uriInfo, String foreignSource, String foreignId, RequisitionCategory category)
Updates or adds a category to a node- Parameters:
foreignSource
- aString
object.foreignId
- aString
object.category
- aRequisitionCategory
object.- Returns:
- a
Response
object.
-
addOrReplaceNodeAssetParameter
@Transactional public javax.ws.rs.core.Response addOrReplaceNodeAssetParameter(@Context javax.ws.rs.core.UriInfo uriInfo, String foreignSource, String foreignId, RequisitionAsset asset)
Updates or adds an asset parameter to a node- Parameters:
foreignSource
- aString
object.foreignId
- aString
object.asset
- aRequisitionAsset
object.- Returns:
- a
Response
object.
-
importRequisition
@Transactional public javax.ws.rs.core.Response importRequisition(@Context javax.ws.rs.core.UriInfo uriInfo, String foreignSource, String rescanExisting)
importRequisition
- Parameters:
foreignSource
- aString
object.- Returns:
- a
Response
object.
-
updateRequisition
@Transactional public javax.ws.rs.core.Response updateRequisition(@Context javax.ws.rs.core.UriInfo uriInfo, String foreignSource, MultivaluedMapImpl params)
Updates the requisition with foreign source "foreignSource"- Parameters:
foreignSource
- aString
object.params
- aMultivaluedMapImpl
object.- Returns:
- a
Response
object.
-
updateNode
@Transactional public javax.ws.rs.core.Response updateNode(@Context javax.ws.rs.core.UriInfo uriInfo, String foreignSource, String foreignId, MultivaluedMapImpl params)
Updates the node with foreign id "foreignId" in foreign source "foreignSource"- Parameters:
foreignSource
- aString
object.foreignId
- aString
object.params
- aMultivaluedMapImpl
object.- Returns:
- a
Response
object.
-
updateInterface
@Transactional public javax.ws.rs.core.Response updateInterface(@Context javax.ws.rs.core.UriInfo uriInfo, String foreignSource, String foreignId, String ipAddress, MultivaluedMapImpl params)
Updates a specific interface- Parameters:
foreignSource
- aString
object.foreignId
- aString
object.ipAddress
- aString
object.params
- aMultivaluedMapImpl
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
- aString
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
- aString
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
-
deleteInterface
@Transactional public javax.ws.rs.core.Response deleteInterface(String foreignSource, String foreignId, String ipAddress)
deleteInterface
-
deleteInterfaceService
@Transactional public javax.ws.rs.core.Response deleteInterfaceService(String foreignSource, String foreignId, String ipAddress, String service)
deleteInterfaceService
-
deleteCategory
@Transactional public javax.ws.rs.core.Response deleteCategory(String foreignSource, String foreignId, String category)
deleteCategory
-
-