Class ForeignSourceRestService


  • @Component("foreignSourceRestService")
    @Path("foreignSources")
    public class ForeignSourceRestService
    extends OnmsRestService

    RESTful service to the OpenNMS Provisioning Foreign Source definitions. Foreign source definitions are used to control the scanning (service detection) of services for SLA monitoring as well as the data collection settings for physical interfaces (resources).

    This API supports CRUD operations for managing the Provisioner's foreign source definitions. Foreign source definitions are POSTed and will be deployed when the corresponding requisition (provisioning group) gets imported by provisiond.

    • GET/PUT/POST pending foreign sources
    • GET pending and deployed count

    Example 1: Create a new foreign sourceNote: The foreign-source attribute typically has a 1 to 1 relationship to a provisioning group (a.k.a. requisition). The relationship is only implied by name and it is a best practice to use the same name for all three. If a requisition exists with the same name as a foreign source, 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" standalone="yes"?>
             <foreign-source date-stamp="2009-03-07T20:22:45.625-05:00" name="Cisco"
               xmlns:ns2="http://xmlns.opennms.org/xsd/config/model-import"
               xmlns="http://xmlns.opennms.org/xsd/config/foreign-source">
               <scan-interval>1d</scan-interval>
               <detectors>
                 <detector class="org.opennms.netmgt.provision.detector.datagram.DnsDetector" name="DNS"/>
                 <detector class="org.opennms.netmgt.provision.detector.simple.FtpDetector" name="FTP"/>
                 <detector class="org.opennms.netmgt.provision.detector.simple.HttpDetector" name="HTTP"/>
                 <detector class="org.opennms.netmgt.provision.detector.simple.HttpsDetector" name="HTTPS"/>
                 <detector class="org.opennms.netmgt.provision.detector.icmp.IcmpDetector" name="ICMP"/>
                 <detector class="org.opennms.netmgt.provision.detector.simple.LdapDetector" name="LDAP"/>
                 <detector class="org.opennms.netmgt.provision.detector.snmp.SnmpDetector" name="SNMP"/>
                 <detector class="org.opennms.netmgt.provision.detector.ssh.SshDetector" name="SSH"/>
               </detectors>
               <policies>
                 <policy class="org.opennms.netmgt.provision.persist.policies.MatchingInterfacePolicy" name="policy1">
                   <parameter value="~10\.*\.*\.*" key="ipAddress"/>
                 </policy>
               </policies>
             </foreign-source> \
         -u admin:admin \
         http://localhost:8980/opennms/rest/foreignSources
    

    Example 2: Query SNMP community string.

    curl -X GET \
         -H "Content-Type: application/xml" \
         -u admin:admin \
            http://localhost:8980/opennms/rest/foreignSources/deployed \
            2>/dev/null \
            |xmllint --format -
    Since:
    1.8.1
    Version:
    $Id: $
    Author:
    Benjamin Reed
    • Constructor Detail

      • ForeignSourceRestService

        public ForeignSourceRestService()
    • Method Detail

      • getDefaultForeignSource

        @GET
        @Path("default")
        @Produces({"application/xml","application/json","application/atom+xml"})
        public ForeignSource getDefaultForeignSource()

        getDefaultForeignSource

        Returns:
        a ForeignSource object.
      • getDeployedForeignSources

        @GET
        @Path("deployed")
        public ForeignSourceCollection getDeployedForeignSources()
        Returns all the deployed foreign sources
        Returns:
        Collection of OnmsForeignSources (ready to be XML-ified)
      • getDeployedCount

        @GET
        @Path("deployed/count")
        @Produces("text/plain")
        public String getDeployedCount()
        returns a plaintext string being the number of pending foreign sources
        Returns:
        a int.
      • getForeignSources

        @GET
        @Produces({"application/xml","application/json","application/atom+xml"})
        public ForeignSourceCollection getForeignSources()
        Returns the union of deployed and pending foreign sources
        Returns:
        Collection of OnmsForeignSources (ready to be XML-ified)
        Throws:
        ParseException - if any.
      • getTotalCount

        @GET
        @Path("count")
        @Produces("text/plain")
        public String getTotalCount()
        returns a plaintext string being the number of pending foreign sources
        Returns:
        a int.
      • getForeignSource

        @GET
        @Path("{foreignSource}")
        @Produces({"application/xml","application/json","application/atom+xml"})
        public ForeignSource getForeignSource​(@PathParam("foreignSource")
                                              String foreignSource)
        Returns the requested ForeignSource
        Parameters:
        foreignSource - the foreign source name
        Returns:
        the foreign source
      • getDetectors

        @GET
        @Path("{foreignSource}/detectors")
        @Produces({"application/xml","application/json","application/atom+xml"})
        public DetectorCollection getDetectors​(@PathParam("foreignSource")
                                               String foreignSource)

        getDetectors

        Parameters:
        foreignSource - a String object.
        Returns:
        a DetectorCollection object.
      • getDetector

        @GET
        @Path("{foreignSource}/detectors/{detector}")
        @Produces({"application/xml","application/json","application/atom+xml"})
        public DetectorWrapper getDetector​(@PathParam("foreignSource")
                                           String foreignSource,
                                           @PathParam("detector")
                                           String detector)

        getDetector

        Parameters:
        foreignSource - a String object.
        detector - a String object.
        Returns:
        a DetectorWrapper object.
      • getPolicies

        @GET
        @Path("{foreignSource}/policies")
        @Produces({"application/xml","application/json","application/atom+xml"})
        public PolicyCollection getPolicies​(@PathParam("foreignSource")
                                            String foreignSource)

        getPolicies

        Parameters:
        foreignSource - a String object.
        Returns:
        a PolicyCollection object.
      • getPolicy

        @GET
        @Path("{foreignSource}/policies/{policy}")
        @Produces({"application/xml","application/json","application/atom+xml"})
        public PolicyWrapper getPolicy​(@PathParam("foreignSource")
                                       String foreignSource,
                                       @PathParam("policy")
                                       String policy)

        getPolicy

        Parameters:
        foreignSource - a String object.
        policy - a String object.
        Returns:
        a PolicyWrapper object.
      • addForeignSource

        @POST
        @Consumes({"application/xml","application/json","application/atom+xml"})
        @Transactional
        public javax.ws.rs.core.Response addForeignSource​(@Context
                                                          javax.ws.rs.core.UriInfo uriInfo,
                                                          ForeignSource foreignSource)

        addForeignSource

        Parameters:
        foreignSource - a ForeignSource object.
        Returns:
        a Response object.
      • addDetector

        @POST
        @Path("{foreignSource}/detectors")
        @Consumes({"application/xml","application/json","application/atom+xml"})
        @Transactional
        public javax.ws.rs.core.Response addDetector​(@Context
                                                     javax.ws.rs.core.UriInfo uriInfo,
                                                     @PathParam("foreignSource")
                                                     String foreignSource,
                                                     DetectorWrapper detector)

        addDetector

        Parameters:
        foreignSource - a String object.
        detector - a DetectorWrapper object.
        Returns:
        a Response object.
      • addPolicy

        @POST
        @Path("{foreignSource}/policies")
        @Consumes({"application/xml","application/json","application/atom+xml"})
        @Transactional
        public javax.ws.rs.core.Response addPolicy​(@Context
                                                   javax.ws.rs.core.UriInfo uriInfo,
                                                   @PathParam("foreignSource")
                                                   String foreignSource,
                                                   PolicyWrapper policy)

        addPolicy

        Parameters:
        foreignSource - a String object.
        policy - a PolicyWrapper object.
        Returns:
        a Response object.
      • updateForeignSource

        @PUT
        @Path("{foreignSource}")
        @Consumes("application/x-www-form-urlencoded")
        @Transactional
        public javax.ws.rs.core.Response updateForeignSource​(@Context
                                                             javax.ws.rs.core.UriInfo uriInfo,
                                                             @PathParam("foreignSource")
                                                             String foreignSource,
                                                             MultivaluedMapImpl params)

        updateForeignSource

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

        @DELETE
        @Path("{foreignSource}")
        @Transactional
        public javax.ws.rs.core.Response deletePendingForeignSource​(@PathParam("foreignSource")
                                                                    String foreignSource)

        deletePendingForeignSource

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

        @DELETE
        @Path("deployed/{foreignSource}")
        @Transactional
        public javax.ws.rs.core.Response deleteDeployedForeignSource​(@PathParam("foreignSource")
                                                                     String foreignSource)

        deleteDeployedForeignSource

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

        @DELETE
        @Path("{foreignSource}/detectors/{detector}")
        @Transactional
        public javax.ws.rs.core.Response deleteDetector​(@PathParam("foreignSource")
                                                        String foreignSource,
                                                        @PathParam("detector")
                                                        String detector)

        deleteDetector

        Parameters:
        foreignSource - a String object.
        detector - a String object.
        Returns:
        a Response object.
      • deletePolicy

        @DELETE
        @Path("{foreignSource}/policies/{policy}")
        @Transactional
        public javax.ws.rs.core.Response deletePolicy​(@PathParam("foreignSource")
                                                      String foreignSource,
                                                      @PathParam("policy")
                                                      String policy)

        deletePolicy

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