Class ForeignSourceRestService


  • @Component("foreignSourceRestService")
    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

        public ForeignSource getDefaultForeignSource()

        getDefaultForeignSource

        Returns:
        a ForeignSource object.
      • getDeployedForeignSources

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

        public String getDeployedCount()
        returns a plaintext string being the number of pending foreign sources
        Returns:
        a int.
      • getForeignSources

        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

        public String getTotalCount()
        returns a plaintext string being the number of pending foreign sources
        Returns:
        a int.
      • getForeignSource

        public ForeignSource getForeignSource​(String foreignSource)
        Returns the requested ForeignSource
        Parameters:
        foreignSource - the foreign source name
        Returns:
        the foreign source
      • addForeignSource

        @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

        @Transactional
        public javax.ws.rs.core.Response addDetector​(@Context
                                                     javax.ws.rs.core.UriInfo uriInfo,
                                                     String foreignSource,
                                                     DetectorWrapper detector)

        addDetector

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

        @Transactional
        public javax.ws.rs.core.Response addPolicy​(@Context
                                                   javax.ws.rs.core.UriInfo uriInfo,
                                                   String foreignSource,
                                                   PolicyWrapper policy)

        addPolicy

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

        @Transactional
        public javax.ws.rs.core.Response updateForeignSource​(@Context
                                                             javax.ws.rs.core.UriInfo uriInfo,
                                                             String foreignSource,
                                                             MultivaluedMapImpl params)

        updateForeignSource

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

        @Transactional
        public javax.ws.rs.core.Response deletePendingForeignSource​(String foreignSource)

        deletePendingForeignSource

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

        @Transactional
        public javax.ws.rs.core.Response deleteDeployedForeignSource​(String foreignSource)

        deleteDeployedForeignSource

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

        @Transactional
        public javax.ws.rs.core.Response deleteDetector​(String foreignSource,
                                                        String detector)

        deleteDetector

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

        @Transactional
        public javax.ws.rs.core.Response deletePolicy​(String foreignSource,
                                                      String policy)

        deletePolicy

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