Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

Code Block
themeEclipse
languagehtml/xml
titleResourceManager.wadl
collapsetrue
<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://wadl.dev.java.net/2009/02" xmlns:xs="http://www.w3.org/2001/XMLSchema">
   <grammars>
      <xs:schema xmlns="http://www.science.uva.nl/research/sne/ndl#" attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="http://www.science.uva.nl/research/sne/ndl#">
         <xs:import namespace="" />
         <xs:element name="Device" type="device" />
         <xs:element name="Interface" type="interface" />
         <xs:element name="Layer" type="layer" />
         <xs:element name="atLayer" type="layerId" />
         <xs:element name="capacity" type="xs:string" />
         <xs:element name="hasInterface" type="interfaceId" />
         <xs:element name="linkTo" type="link" />
         <xs:element name="name" type="xs:string" />
      </xs:schema>
      <xs:schema xmlns:ns1="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ns2="http://www.science.uva.nl/research/sne/ndl/domain#ndl#" attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="xmlns:ns3="http://www.science.uva.nl/research/sne/ndl/domain#">
         <xs:import namespace="" / xmlns:ns4="org.opennaas.core.resources.descriptor.vcpe" attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="org.opennaas.core.resources.descriptor.vcpe">
         <xs:elementimport namenamespace="NetworkDomain" type="networkDomain" http://www.w3.org/1999/02/22-rdf-syntax-ns#" />
         <xs:elementimport namenamespace="hasDevice" type="deviceId" http://www.science.uva.nl/research/sne/ndl#" />
      </xs:schema>
      <xs:schemaimport xmlns:ns1namespace="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ns2="http://www.science.uva.nl/research/sne/ndl#" xmlns:ns3="http://www.science.uva.nl/research/sne/ndl/domain#" xmlns:ns4="org.opennaas.core.resources.descriptor.vcpe" attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace />
         <xs:import namespace="org.opennaas.core.resources.descriptor.vcpe" />
         <xs:import namespace="http://www.w3.org/1999/02/22-rdf-syntax-ns#element name="resourceDescriptor" type="resourceDescriptor" />
         <xs:importelement namespacename="http://www.science.uva.nl/research/sne/ndl#" />
         <xs:import namespace="http://www.science.uva.nl/research/sne/ndl/domain#resourceInfo" type="resourceInfo" />
         <xs:importelement namespacename="org.opennaas.core.resources.descriptor.vcperesources" type="resourceListWrapper" />
         <xs:element name="resourceDescriptorresourcesTypes" type="resourceDescriptorresourceTypeListWrapper" />
         <xs:element name="vcpeNetworkDescriptor" type="vcpeNetworkDescriptor" />
         <xs:complexType name="resourceDescriptorresourceInfo">
            <xs:sequence>
               <xs:element maxOccurs="unbounded" minOccurs="0" name="capabilityDescriptorsresourceId" type="capabilityDescriptorxs:string" />
               <xs:element minOccurs="0" name="fileTopologyname" type="xs:string" />
               <xs:element minOccurs="0" name="idtype" type="xs:string" />
               <xs:element minOccurs="0" name="informationstate" type="informationstate" />
               <xs:element minOccurs="0" name="networkTopology" type="networkTopology" />
               <xs:element minOccurs="0" name="profileId" type="xs:string" />
capabilities">
                  <xs:element name="properties">
                  <xs:complexType>
                     <xs:sequence>
                        <xs:element maxOccurs="unbounded" minOccurs="0" name="entry"capability" nillable="true" type="xs:string" />
                     </xs:sequence>
       <xs:complexType>
           </xs:complexType>
                   <xs:sequence></xs:element>
            </xs:sequence>
         </xs:complexType>
            <xs:element minOccurs="0"complexType name="key" type="xs:string" /resourceTypeListWrapper">
                  <xs:sequence>
               <xs:element maxOccurs="unbounded" minOccurs="0" name="valueresourceType" type="xs:string" />
            </xs:sequence>
         </xs:complexType>
         </xs:sequence><xs:complexType name="resourceListWrapper">
            <xs:sequence>
               </xs:complexType>
   <xs:element maxOccurs="unbounded" minOccurs="0" name="resource" type="xs:string" />
            </xs:sequence>
         </xs:element>complexType>
         <xs:complexType name="resourceDescriptor">
           </xs <xs:sequence>
                  </xs:complexType>
               </xs:element><xs:element maxOccurs="unbounded" minOccurs="0" name="capabilityDescriptors" type="capabilityDescriptor" />
               <xs:element nameminOccurs="resourceReferences0">
 name="fileTopology" type="xs:string" />
               <xs:complexType>
    element minOccurs="0" name="id" type="xs:string" />
                 <xs:sequence>
       element minOccurs="0" name="information" type="information" />
                 <xs:element maxOccursminOccurs="unbounded0" minOccursname="0networkTopology" nametype="entrynetworkTopology" />
               <xs:element minOccurs="0"       name="profileId" type="xs:string" />
               <xs:complexType>element name="properties">
                  <xs:complexType>
            <xs:sequence>
         <xs:sequence>
                        <xs:element minOccursmaxOccurs="0unbounded" nameminOccurs="key0" typename="xs:stringentry" />
                                 <xs:element minOccurs="0" name="value" type="xs:string" /><xs:complexType>
                              </xs<xs:sequence>
                           </xs:complexType>
      <xs:element minOccurs="0" name="key" type="xs:string" />
               </xs:element>
                  <xs:element minOccurs="0"  </xs:sequence>name="value" type="xs:string" />
                  </xs:complexType>
               </xs:element>
sequence>
                  </xs:sequence>
         </xs:complexType>
           <xs:complexType name="capabilityDescriptor">
            <xs</xs:sequence>element>
               <xs:element minOccurs="0" name="information" type="information" />
       </xs:sequence>
              <xs:element maxOccurs="unbounded" minOccurs="0" name="capabilityProperty" type="capabilityProperty" </>xs:complexType>
               <xs:element minOccurs="0" name="enabled" type="xs:boolean" /></xs:element>
               <xs:element name="idresourceReferences" type="xs:long" />
>
                  </xs<xs:sequence>complexType>
            </xs:complexType>
         <xs:complexType name="information">
  sequence>
          <xs:sequence>
               <xs:element minOccursmaxOccurs="0unbounded" nameminOccurs="description0" typename="xs:stringentry" />
               <xs:element minOccurs="0" name="name" type="xs:string" />
            <xs:complexType>
           <xs:element minOccurs="0" name="type" type="xs:string" />
               <xs:element minOccurs="0" name="version" type="xs:string" />
   sequence>
               </xs:sequence>
         </xs:complexType>
         <xs:complexTypeelement minOccurs="0" name="capabilityProperty"key" type="xs:string" />
            <xs:sequence>
                     <xs:element minOccurs="0" name="idvalue" type="xs:longstring" />
                              </xs:sequence>
            <xs:attribute name="name" type="xs:string" />
            <xs:attribute name="value" type="xs:string" />
</xs:complexType>
                        </xs:complexType>element>
         <xs:complexType name="networkTopology">
            <xs</xs:sequence>
               <xs:element maxOccurs="unbounded" minOccurs="0" ref="ns2:Device" /> </xs:complexType>
               <xs:element maxOccurs="unbounded" minOccurs="0" ref="ns2:Interface" /></xs:element>
            </xs:sequence>
         </xs:complexType>
         <xs:elementcomplexType maxOccursname="unbounded" minOccurs="0" ref="ns2:Layer" />capabilityDescriptor">
            <xs:sequence>
               <xs:element minOccurs="0" name="locationinformation" type="xs:stringinformation" />
               <xs:element maxOccurs="unbounded" minOccurs="0" refname="capabilityProperty" type="ns3:NetworkDomaincapabilityProperty" />
            </xs:sequence>
   <xs:element minOccurs="0"     </xs:complexType>
         <xs:complexType name="device">
            <xs:sequence>
               <xs:element maxOccurs="unbounded" minOccurs="0" ref="ns2:hasInterface" name="enabled" type="xs:boolean" />
               <xs:element minOccursname="0id" reftype="ns2xs:namelong" />
            </xs:sequence>
         </xs:complexType>
         <xs:complexType name="interfaceIdinformation">
            <xs:sequence />
sequence>
               <xs:attributeelement refminOccurs="ns1:resource" />
         </xs:complexType>
         <xs:complexType 0" name="interfacedescription">
            <xs:sequence> type="xs:string" />
               <xs:element minOccurs="0" name="name" reftype="ns2xs:atLayerstring" />
               <xs:element minOccurs="0" refname="type" type="ns2xs:capacitystring" />
               <xs:element minOccurs="0" refname="version" type="ns2xs:linkTostring" />
            </xs:sequence>
    <xs:element minOccurs="0" ref="ns2:name" />
            </xs:sequence>
         </xs:complexType>
         <xs:complexType name="layerIdcapabilityProperty">
            <xs:sequence />
sequence>
               <xs:attribute refelement name="id" type="ns1xs:resourcelong" />
            </xs:complexType>sequence>
            <xs:complexTypeattribute name="linkname">
            <xs:sequence type="xs:string" />
            <xs:attribute refname="ns1:resourcevalue" type="xs:string" />
         </xs:complexType>
         <xs:complexType name="layernetworkTopology">
            <xs:sequence>
               <xs:element maxOccurs="unbounded" minOccurs="0" ref="ns2:nameDevice" />
            </xs:sequence>
         </xs:complexType>
         <xs:complexTypeelement namemaxOccurs="networkDomainunbounded">
 minOccurs="0"           <xs:sequence>ref="ns2:Interface" />
               <xs:element maxOccurs="unbounded" minOccurs="0" ref="ns3ns2:hasDeviceLayer" />
               <xs:element minOccurs="0" refname="location" type="ns2xs:namestring" />
            </xs:sequence>
         </xs:complexType>
         <xs:complexType name="deviceId">
            <xs:sequence<xs:element maxOccurs="unbounded" minOccurs="0" ref="ns3:NetworkDomain" />
            <xs:attribute ref="ns1:resource" /></xs:sequence>
         </xs:complexType>
         <xs:complexType name="vcpeNetworkDescriptordevice">
            <xs:complexContent>sequence>
               <xs:extensionelement basemaxOccurs="resourceDescriptorunbounded">
 minOccurs="0" ref="ns2:hasInterface" />
               <xs:sequence>
   element minOccurs="0" ref="ns2:name" />
            </xs:sequence>
      <xs:element minOccurs="0" ref="ns4:vCPEModel" </>xs:complexType>
         <xs:complexType name="interfaceId">
        </xs:sequence>    <xs:sequence />
            <xs:attribute   </xs:extension>
  ref="ns1:resource" />
          </xs:complexContent>complexType>
         </xs:complexType><xs:complexType name="interface">
      </xs:schema>
      <xs:schema xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
sequence>
               <xs:importelement namespaceminOccurs="0" ref="ns2:atLayer" />
               <xs:element nameminOccurs="RDF0" typeref="networkTopologyns2:capacity" />
               <xs:attributeelement nameminOccurs="resource0" typeref="xsns2:stringlinkTo" />
         </xs:schema>
      <xs:schemaelement xmlnsminOccurs="org.opennaas.core.resources.descriptor.vcpe0" attributeFormDefaultref="unqualified" elementFormDefault="unqualified" targetNamespace="org.opennaas.core.resources.descriptor.vcpe">
ns2:name" />
          <xs:element name="vCPEModel" type="xs:string" />
 </xs:sequence>
         </xs:schema>complexType>
   </grammars>
      <resources<xs:complexType basename="http://localhost:8888/opennaas/resources/layerId">
      <resource path="/">
         <resource path="create"<xs:sequence />
            <method<xs:attribute nameref="POSTns1:resource" />
         </xs:complexType>
      <request>
   <xs:complexType name="link">
              <representation mediaType="application/xml" <xs:sequence />
               </request><xs:attribute ref="ns1:resource" />
         </xs:complexType>
      <response>
   <xs:complexType name="layer">
              <representation mediaType="application/xml"><xs:sequence>
                     <param name<xs:element minOccurs="result0" styleref="plain" type="xs:stringns2:name" />
                  </representation>xs:sequence>
               </response>xs:complexType>
            </method><xs:complexType name="networkDomain">
         </resource>
   <xs:sequence>
      <resource path="getDescriptor/{resourceId}">
            <param name<xs:element maxOccurs="resourceIdunbounded" styleminOccurs="template0" typeref="xsns3:stringhasDevice" />
               <method name="GET" <xs:element minOccurs="0" ref="ns2:name" />
            </xs:sequence>
     <request    </>xs:complexType>
         <xs:complexType name="deviceId">
      <response>
      <xs:sequence />
           <representation mediaType="application/xml <xs:attribute ref="ns1:resource" />
               </response>xs:complexType>
            </method>
<xs:complexType name="vcpeNetworkDescriptor">
            </resource>
<xs:complexContent>
               <resource<xs:extension pathbase="getName/{resourceId}/resourceDescriptor">
            <param name="resourceId" style="template" type="xs:string" />
  <xs:sequence>
          <method name="GET">
          <xs:element     <request minOccurs="0" ref="ns4:vCPEModel" />
               <response>
   </xs:sequence>
               <representation mediaType="application/octet-stream">
</xs:extension>
            </xs:complexContent>
         </xs:complexType>
       <param name="result" style="plain" type="xs:string" / <xs:simpleType name="state">
            <xs:restriction base="xs:string">
     </representation>
          <xs:enumeration value="INSTANTIATED" />
   </response>
             </method><xs:enumeration value="INITIALIZED" />
         </resource>
         <resource path<xs:enumeration value="getResourceTypesACTIVE" />
               <method<xs:enumeration namevalue="GETINACTIVE" />
               <response>
  <xs:enumeration value="SHUTDOWN" />
                <representation mediaType<xs:enumeration value="application/xmlERROR" />
               </response>xs:restriction>
            </method>
   xs:simpleType>
      </resource>xs:schema>
         <resource path="modify/{resourceId}">
            <param name="resourceId" style="template" type="xs:string" /<xs:schema xmlns="http://www.science.uva.nl/research/sne/ndl/domain#" attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="http://www.science.uva.nl/research/sne/ndl/domain#">
            <method name<xs:import namespace="POST" />
         <xs:element name="NetworkDomain"     <request>type="networkDomain" />
         <xs:element         <representation mediaType="application/xmlname="hasDevice" type="deviceId" />
      </xs:schema>
      <xs:schema xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" attributeFormDefault="unqualified"  </request>elementFormDefault="unqualified" targetNamespace="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
         <xs:import namespace="" />
    <response>
     <xs:element name="RDF" type="networkTopology" />
          <representation mediaType="application/xml"<xs:attribute name="resource" type="xs:string" />
      </xs:schema>
      <xs:schema         <param name="result" style="plain" type="xs:string" /xmlns="org.opennaas.core.resources.descriptor.vcpe" attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="org.opennaas.core.resources.descriptor.vcpe">
         <xs:element name="vCPEModel" type="xs:string" />
      </representation>xs:schema>
   </grammars>
            </response>
            </method><resources base="http://localhost:8888/opennaas/resources/">
         </resource><resource path="/">
         <resource<method pathname="remove/{resourceId}DELETE">
            <param<response namestatus="resourceId" style="template" type="xs:string" 204" />
         </method>
         <method name="POSTGET">
               <request /><response>
               <response<representation statusmediaType="204application/xml" />
            </method>response>
         </resource>method>
         <resource<method pathname="start/{resourceId}POST">
            <param name="resourceId" style="template" type="xs:string" />
<request>
               <method<representation namemediaType="POSTapplication/xml" />
            </request>
   <request />         <response>
               <response<representation statusmediaType="204application/xml" />
            </method>
      <param name="result" style="plain" type="xs:string" </resource>>
               </representation>
            </response>
         </method>
         <resource path="stopforceStop/{resourceId}">
            <param name="resourceId" style="template" type="xs:string" />
            <method name="POSTPUT">
               <request />
               <response status="204" />
            </method>
         </resource>
      </resource>
   </resources>
</application>

 

Methods

 

CreateResource

The CreateResource method creates a new resource in OpenNaaS from the resource descriptor given by the user. If the method ends successfully, the id of the new resource is returned to he user.

 ValueDescription
URLhttp://hostname:8888/opennaas/resources/ 
Method

POST

 
Body ParameterResourceDescriptorResource descriptor containing the resource info (type, name, description) and its list of capabilities.
ReturnStringResource id of the created resource.

The following example creates a router resource called "myre" with BGP and Chassis capabilities, both of them using the "Junos 10.10" driver.

Body Example
Code Block
themeEclipse
languagehtml/xml
titleCreateResource Body
<?xml version="1.0" encoding="UTF-8"?>
<resourceDescriptor xmlns:ns2="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ns3="http://www.science.uva.nl/research/sne/ndl#" xmlns:ns4="http://www.science.uva.nl/research/sne/ndl/domain#" xmlns:ns5="org.opennaas.core.resources.descriptor.vcpe">
   <capabilityDescriptors>
      <information>
         <name>bgp capability</name>
   <resource path="type">
            <method name="GET">
               <response>
                  <representation mediaType="application/xml" />
               </response>
            </method>
         </resource>
         <resource path="type/{type}">
            <param name="type" style="template" type="xs:string" />
            <method name="GET">
               <request />
             <type>bgp</type>  <response>
      </information>
      <capabilityProperty name="actionset.name" value="junos">
    <representation mediaType="application/xml" </capabilityProperty>>
       <capabilityProperty name="actionset.version" value="10.10">
      </capabilityProperty>response>
   </capabilityDescriptors>
   <capabilityDescriptors>
      <information></method>
         <name>chassis capability<</name>resource>
         <type>chassis</type><resource path="type/{type}/name">
      </information>
      <capabilityProperty<param name="actionset.nametype" valuestyle="junostemplate">
   type="xs:string" />
     </capabilityProperty>
       <capabilityProperty<method name="actionset.version" value="10.10GET">
               <request </capabilityProperty>>
   </capabilityDescriptors>
            <response>
           <information>
       <name>myre</name><representation mediaType="application/xml" />
      <type>router</type>
         </information>response>
   <properties />
</resourceDescriptor>
Response Example
No Format
584c96d5-2221-47d0-8c51-c5d4d45f3ff4

ModifyResource

The ModifyResource method updated the information of an existing resource of OpenNaaS. The resourceDescriptor will be replaced by the new one, but the resourceId will be manteined. 

 ValueDescription
URLhttp://hostname:8888/opennaas/resources/{resourceId} 
Method

PUT

 
Path ParameterresourceIdId of the resource to be modified.
Body ParameterResourceDescriptorResource descriptor containing the new resource information.
ReturnStringResource id of the modified resource. It matches the path parameter "resourceId"

The following example modifies the previous created router by adding a new capability: the IP capability using the "Junos 10.10" router.

Body Example
Code Block
themeEclipse
languagehtml/xml
titleCreateResource Body
<?xml version="1.0" encoding="UTF-8"?>
<resourceDescriptor xmlns:ns2="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ns3="http://www.science.uva.nl/research/sne/ndl#" xmlns:ns4="http://www.science.uva.nl/research/sne/ndl/domain#" xmlns:ns5="org.opennaas.core.resources.descriptor.vcpe">
   <capabilityDescriptors>
      <information>
         <name>bgp capability</name>         </method>
         </resource>
         <resource path="type/{type}/name/{name}">
            <param name="type" style="template" type="xs:string" />
            <param name="name" style="template" type="xs:string" />
            <method name="GET">
               <request />
         <type>bgp</type>
      </information><response>
      <capabilityProperty name="actionset.name" value="junos">
      </capabilityProperty>
    <representation  <capabilityProperty name="actionset.version" value="10.10mediaType="application/octet-stream">
      </capabilityProperty>
   </capabilityDescriptors>
   <capabilityDescriptors>
      <information>
   <param name="result" style="plain" type="xs:string" />
  <name>chassis capability</name>
         <type>chassis</type>
      </information>representation>
      <capabilityProperty name="actionset.name" value="junos">
         </capabilityProperty>response>
       <capabilityProperty name="actionset.version" value="10.10">
      </capabilityProperty>     </method>
      <id>0</id>
   </capabilityDescriptors>resource>
    <capabilityDescriptors>
      <information><resource path="{resourceId}">
         <name>ip capability</name>
  <param name="resourceId" style="template"     <type>ip</type>type="xs:string" />
      </information>
      <capabilityProperty<method name="actionset.name" value="junos"DELETE">
       </capabilityProperty>
       <capabilityProperty name="actionset.version" value="10.10" <request />
      </capabilityProperty>
         <response status="204" />
            </capabilityDescriptors>
method>
             <information>
<method name="GET">
       <name>myre</name>
        <request />
           <type>router</type>    <response>
   </information>
                <properties<representation mediaType="application/xml" />
</resourceDescriptor>
Response Example
No Format
584c96d5-2221-47d0-8c51-c5d4d45f3ff4

StartResource

The StartResource method starts a resource, only if it's in INITIALIZED state.

               </response>
            </method>
            <method name="PUT">
               <request>
                  <representation mediaType="application/xml" />
               </request>
               <response>
                  <representation mediaType="application/xml">
                     <param name="result" style="plain" type="xs:string" />
                  </representation>
               </response>
            </method>
         </resource>
         <resource path="{resourceId}/descriptor">
            <param name="resourceId" style="template" type="xs:string" />
            <method name="GET">
               <request />
               <response>
                  <representation mediaType="application/xml" />
               </response>
            </method>
         </resource>
         <resource path="{resourceId}/name">
            <param name="resourceId" style="template" type="xs:string" />
            <method name="GET">
               <request />
               <response>
                  <representation mediaType="application/octet-stream">
                     <param name="result" style="plain" type="xs:string" />
                  </representation>
               </response>
            </method>
         </resource>
         <resource path="{resourceId}/status">
            <param name="resourceId" style="template" type="xs:string" />
            <method name="GET">
               <request />
               <response>
                  <representation mediaType="application/octet-stream">
                     <param name="result" style="plain" type="xs:string" />
                  </representation>
               </response>
            </method>
         </resource>
         <resource path="{resourceId}/status/start">
            <param name="resourceId" style="template" type="xs:string" />
            <method name="PUT">
               <request />
               <response status="204" />
            </method>
         </resource>
         <resource path="{resourceId}/status/stop">
            <param name="resourceId" style="template" type="xs:string" />
            <method name="PUT">
               <request />
               <response status="204" />
            </method>
         </resource>
      </resource>
   </resources>
</application>

Methods

ListResources

Returns the ids of all existing resources, no matter the state they have.

 ValueDescription
URLhttp://hostname:8888/opennaas/resources/ 
Method

GET

 
ReturnList<String>Ids of all existing resources.
Response Example
Code Block
themeEclipse
languagehtml/xml
<resources>
  <resource>b6c3a6c9-9a2e-4bc4-9604-13d014bd508f</resource>
  <resource>584c96d5-2221-47d0-8c51-c5d4d45f3ff4</resource>
  <resource>c65gfr15-22er-74j0-87gh-hg78nnlo0aqe</resource>
 </resources>

CreateResource

The CreateResource method creates a new resource in OpenNaaS from the resource descriptor given by the user. If the method ends successfully, the id of the new resource is returned to he user.

 ValueDescription
URLhttp://hostname:8888/opennaas/resources/ 
Method

POST

 
Body ParameterResourceDescriptorResource descriptor containing the resource info (type, name, description) and its list of capabilities.
ReturnStringResource id of the created resource.

The following example creates a router resource called "myre" with BGP and Chassis capabilities, both of them using the "Junos 10.10" driver.

Body Example
Code Block
themeEclipse
languagehtml/xml
titleCreateResource Body
<?xml version="1.0" encoding="UTF-8"?>
<resourceDescriptor xmlns:ns2="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ns3="http://www.science.uva.nl/research/sne/ndl#" xmlns:ns4="http://www.science.uva.nl/research/sne/ndl/domain#" xmlns:ns5="org.opennaas.core.resources.descriptor.vcpe">
   <capabilityDescriptors>
      <information>
         <name>bgp capability</name>
         <type>bgp</type>
      </information>
      <capabilityProperty name="actionset.name" value="junos">
      </capabilityProperty>
      <capabilityProperty name="actionset.version" value="10.10">
      </capabilityProperty>
   </capabilityDescriptors>
   <capabilityDescriptors>
      <information>
         <name>chassis capability</name>
         <type>chassis</type>
      </information>
      <capabilityProperty name="actionset.name" value="junos">
      </capabilityProperty>
      <capabilityProperty name="actionset.version" value="10.10">
      </capabilityProperty>
   </capabilityDescriptors>
   <information>
      <name>myre</name>
      <type>router</type>
   </information>
   <properties />
</resourceDescriptor>
Response Example
No Format
584c96d5-2221-47d0-8c51-c5d4d45f3ff4

ModifyResource

The ModifyResource method updated the information of an existing resource of OpenNaaS. The resourceDescriptor will be replaced by the new one, but the resourceId will be manteined. 

 ValueDescription
URLhttp://hostname:8888/opennaas/resources/{resourceId} 
Method

PUT

 
Path ParameterresourceIdId of the resource to be modified.
Body ParameterResourceDescriptorResource descriptor containing the new resource information.
ReturnStringResource id of the modified resource. It matches the path parameter "resourceId"

The following example modifies the previous created router by adding a new capability: the IP capability using the "Junos 10.10" router.

Body Example
Code Block
themeEclipse
languagehtml/xml
titleCreateResource Body
<?xml version="1.0" encoding="UTF-8"?>
<resourceDescriptor xmlns:ns2="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ns3="http://www.science.uva.nl/research/sne/ndl#" xmlns:ns4="http://www.science.uva.nl/research/sne/ndl/domain#" xmlns:ns5="org.opennaas.core.resources.descriptor.vcpe">
   <capabilityDescriptors>
      <information>
         <name>bgp capability</name>
         <type>bgp</type>
      </information>
      <capabilityProperty name="actionset.name" value="junos">
      </capabilityProperty>
      <capabilityProperty name="actionset.version" value="10.10">
      </capabilityProperty>
   </capabilityDescriptors>
   <capabilityDescriptors>
      <information>
         <name>chassis capability</name>
         <type>chassis</type>
      </information>
      <capabilityProperty name="actionset.name" value="junos">
      </capabilityProperty>
      <capabilityProperty name="actionset.version" value="10.10">
      </capabilityProperty>
      <id>0</id>
   </capabilityDescriptors>
   <capabilityDescriptors>
      <information>
         <name>ip capability</name>
         <type>ip</type>
      </information>
      <capabilityProperty name="actionset.name" value="junos">
      </capabilityProperty>
      <capabilityProperty name="actionset.version" value="10.10">
      </capabilityProperty>
   </capabilityDescriptors>
   <information>
      <name>myre</name>
      <type>router</type>
   </information>
   <properties />
</resourceDescriptor>
Response Example
No Format
584c96d5-2221-47d0-8c51-c5d4d45f3ff4

RemoveResource

The RemoveResource method removes a resource from OpenNaaS, only if it's in INITIALIZED state. It the resource is in STARTED state, it must be stopped before calling this method.

 ValueDescription
URLhttp://hostname:8888/opennaas/resources/{resourceId} 
Method

DELETE

 
Path ParameterresourceIdId of the resource to be removed.
Return- 

DestroyAllResources

Stops and removes all existing resource of the OpenNaaS instance.

 ValueDescription
URLhttp://hostname:8888/opennaas/resources/ 
Method

DELETE

 
Return- 

GetResourceInfoById

Returns the main information from a specific resource: id, name, type, state and the list of capabilities it contains.

 ValueDescription
URLhttp://hostname:8888/opennaas/resources/{resourceId} 
Method

GET

 
ReturnResourceInfoId, name, type, state and list of capabilities of the resource.
Response Example
Code Block
themeEclipse
languagehtml/xml
      <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<resourceInfo>
  <resourceId>584c96d5-2221-47d0-8c51-c5d4d45f3ff4</resourceId>
  <name>myre</name>
  <type>router</type>
  <state>ACTIVE</state>
  <capabilities>
    <capability>ip</capability>
    <capability>chassis</capability>
    <capability>bgp</capability>
  </capabilities>
</resourceInfo>

GetNameFromResourceID

Given the resourceId of an existing resource, this method return its name.

 ValueDescription
URLhttp://hostname:8888/opennaas/resources/{resourceId}/name 
Method

GET

 ValueDescription
URLhttp://hostname:8888/opennaas/resources/{resourceId}/status/start 
Method

PUT

 
Path ParameterresourceIdId of the resource to be started.
Return- 

StopResource

The StopResource method stops a resource, only if it's in STARTED state.

 ValueDescription
URLhttp://hostname:8888/opennaas/resources/{resourceId}/status/stop 
Method

PUT

 
Path ParameterresourceIdId of the resource to be stopped.
Return- 

RemoveResource

The RemoveResource method removes a resource from OpenNaaS, only if it's in INITIALIZED state. It the resource is in STARTED state, it must be stopped before calling this method.

 ValueDescription
URLhttp://hostname:8888/opennaas/resources/{resourceId} 
Method

DELETE

 
Path ParameterresourceIdId of the resource to be removed.
Return- 

GetResourceTypes

List all the types of resources supported by the OpenNaaS instance.

 ValueDescription
URLhttp://hostname:8888/opennaas/resources/type 
Method

GET

 
ReturnList<String>Name of the resources types supported by OpenNaaS.
Response Example
Code Block
languagehtml/xml
<?xml version="1.0" encoding="UTF-8"?>
<resourcesTypes>
   <resourceType>bod</resourceType>
   <resourceType>roadm</resourceType>
   <resourceType>MACBridgeIOS</resourceType>
   <resourceType>pdu</resourceType>
   <resourceType>sampleresource</resourceType>
   <resourceType>quantumresource</resourceType>
   <resourceType>network</resourceType>
   <resourceType>powernet</resourceType>
   <resourceType>vnmapper</resourceType>
   <resourceType>router</resourceType>
   <resourceType>openflowswitch</resourceType>
   <resourceType>vcpenet</resourceType>
   <resourceType>ofnetwork</resourceType>
</resourcesTypes>

 

GetNameFromResourceID

which name we want to retrieve.
ReturnStringName of the resource identified by the given resourceId.
Response Example
No Format
myre

GetResourceDescriptor

Given the resourceId of an existing resource, this method returns its whole resource descriptor.

 ValueDescription
URLhttp://hostname:8888/opennaas/resources/{resourceId}/descriptor 
Method

GET

 
Path ParameterresourceIdId of the resource which descriptor we want to retrieve
ReturnResourceDescriptorName of the resource identified by the given resourceId.
Response Example
Code Block
themeEclipse
languagehtml/xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<resourceDescriptor xmlns:ns2="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ns3="http://www.science.uva.nl/research/sne/ndl#" xmlns:ns4="http://www.science.uva.nl/research/sne/ndl/domain#" xmlns:ns5="org.opennaas.core.resources.descriptor.vcpe">
	<capabilityDescriptors>
      <information>
         <name>bgp capability</name>
         <type>bgp</type>
      </information>
      <capabilityProperty name="actionset.name" value="junos">
      </capabilityProperty>
      <capabilityProperty name="actionset.version" value="10.10">
      </capabilityProperty>
   </capabilityDescriptors>
   <capabilityDescriptors>
      <information>
         <name>chassis capability</name>
         <type>chassis</type>
      </information>
      <capabilityProperty name="actionset.name" value="junos">
      </capabilityProperty>
      <capabilityProperty name="actionset.version" value="10.10">
      </capabilityProperty>
      <id>0</id>
   </capabilityDescriptors>
   <capabilityDescriptors>
      <information>
         <name>ip capability</name>
         <type>ip</type>
      </information>
      <capabilityProperty name="actionset.name" value="junos">
      </capabilityProperty>
      <capabilityProperty name="actionset.version" value="10.10">
      </capabilityProperty>
   </capabilityDescriptors>  
  <id>584c96d5-2221-47d0-8c51-c5d4d45f3ff4</id>
  <information>
    <description>Junos v10 Router</description>
    <name>myre</name>
    <type>router</type>
  </information>
  <properties/>
</resourceDescriptor>

GetStatus

Returns the current lifecycle state of the resourceGiven the resourceId of an existing resource, this method return its name.

 ValueDescription
URLhttp://hostname:8888/opennaas/resources/{resourceId}/namestatus 
Method

GET

 
Path ParameterresourceIdId of the resource which name status we want to retrieve.
ReturnStringName Current status of the resource identified by the given resourceId.
Response Example
No Format
myreINITIALIZED

 

GetResourceDescriptor

StartResource

The StartResource method starts a resource, only if it's in INITIALIZED stateGiven the resourceId of an existing resource, this method returns its whole resource descriptor.

 ValueDescription
URLhttp://hostname:8888/opennaas/resources/{resourceId}/status/descriptorstart 
Method

GETPUT

 
Path ParameterresourceIdId of the resource which descriptor we want to retrieveto be started.
ReturnResourceDescriptorName of the resource identified by the given resourceId.
Response Example
Code Block
themeEclipse
languagehtml/xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<resourceDescriptor xmlns:ns2="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ns3="http://www.science.uva.nl/research/sne/ndl#" xmlns:ns4="http://www.science.uva.nl/research/sne/ndl/domain#" xmlns:ns5="org.opennaas.core.resources.descriptor.vcpe">
	<capabilityDescriptors>
      <information>
         <name>bgp capability</name>
         <type>bgp</type>
      </information>
      <capabilityProperty name="actionset.name" value="junos">
      </capabilityProperty>
      <capabilityProperty name="actionset.version" value="10.10">
      </capabilityProperty>
   </capabilityDescriptors>
   <capabilityDescriptors>
      <information>
         <name>chassis capability</name>
         <type>chassis</type>
      </information>
      <capabilityProperty name="actionset.name" value="junos">
      </capabilityProperty>
      <capabilityProperty name="actionset.version" value="10.10">
      </capabilityProperty>
      <id>0</id>
   </capabilityDescriptors>
   <capabilityDescriptors>
      <information>
         <name>ip capability</name>
         <type>ip</type>
      </information>
      <capabilityProperty name="actionset.name" value="junos">
      </capabilityProperty>
      <capabilityProperty name="actionset.version" value="10.10">
      </capabilityProperty>
   </capabilityDescriptors>  
  <id>584c96d5-2221-47d0-8c51-c5d4d45f3ff4</id>
  <information>
    <description>Junos v10 Router</description>
    <name>myre</name>
    <type>router</type>
  </information>
  <properties/>
</resourceDescriptor>

 

GetIdentifierFromResourceTypeName

Given the name and the type of an existing resource, this method returns its id.

 ValueDescription
URLhttp://hostname:8888/opennaas/resources/type/{type}/name/{name} 
Method

GET

 
Path ParametertypeType of the resource which id we want to retrieve.
Path ParameternameName of the resource which id we want to retrieve.
ReturnStringId of the resource of type and name set in url.
Response Example
No Format
584c96d5-2221-47d0-8c51-c5d4d45f3ff4

GetStatus

Returns the current lifecycle state of the resource.

- 

StopResource

The StopResource method stops a resource, only if it's in STARTED state.

 ValueDescription
URLhttp://hostname:8888/opennaas/resources/{resourceId}/status/stop 
Method

PUT

 
Path ParameterresourceIdId of the resource to be stopped.
Return- 

ForceStopResource

Forces a resource to get into INITIALIZED state.

GetResourceTypes

List all the types of resources supported by the OpenNaaS instance.

 ValueDescription
URLhttp://hostname:8888/opennaas/resources/type 
Method

GET

 
ReturnList<String>Name of the resources types supported by OpenNaaS.
Response Example
Code Block
languagehtml/xml
<?xml version="1.0" encoding="UTF-8"?>
<resourcesTypes>
   <resourceType>bod</resourceType>
   <resourceType>roadm</resourceType>
   <resourceType>MACBridgeIOS</resourceType>
   <resourceType>pdu</resourceType>
   <resourceType>sampleresource</resourceType>
   <resourceType>quantumresource</resourceType>
   <resourceType>network</resourceType>
   <resourceType>powernet</resourceType>
   <resourceType>vnmapper</resourceType>
   <resourceType>router</resourceType>
   <resourceType>openflowswitch</resourceType>
   <resourceType>vcpenet</resourceType>
   <resourceType>ofnetwork</resourceType>
</resourcesTypes>

ListResourcesByType

Returns the ids of all existing resources of a specific type.

 ValueDescription
URLhttp://hostname:8888/opennaas/resources/type/{resourceIdtype}/status 
Method

GET

 
Path ParameterresourceIdtypeId Type of the resource which status list of resources we want to retrieve.
ReturnStringList<String>Current status of the resource.Ids of the resources which type matches the one set at the url
Response Example
Code Block
themeEclipse
languagehtml/xml
<resources>
  <resource>b6c3a6c9-9a2e-4bc4-9604-13d014bd508f</resource>
  <resource>584c96d5-2221-47d0-8c51-c5d4d45f3ff4</resource>
</resources>
No Format
INITIALIZED

ListResourcesNameByType

Returns the list of all existing resources of a specific type.

 ValueDescription
URLhttp://hostname:8888/opennaas/resources/type/{type}/name 
Method

GET

 
Path ParameterresourceTypeType of the list of resources we want to retrieve.
ReturnList<String>Name of the resources which type matches the one given by the user.
Response Example
Code Block
themeEclipse
languagehtml/xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<resources>
  <resource>dub_1_log</resource>
  <resource>myre</resource>
  <resource>logicalrouter1</resource>
</resources>

 

DestroyAllResources

Stops and removes all existing resource of the OpenNaaS instance.

 ValueDescription
URLhttp://hostname:8888/opennaas/resources/ 
Method

DELETE

 
Return- 

ListResourcesByType

 GetIdentifierFromResourceTypeName

Given the name and the type of an existing resource, this method returns its idReturns the ids of all existing resources of a specific type.

 ValueDescription
URLhttp://hostname:8888/opennaas/resources/type/{type}/name/{name} 
Method

GET

 
Path ParametertypeType of the list of resources resource which id we want to retrieve.
Path ParameternameName of the resource which id we want to retrieve.
ReturnList<String>StringIds Id of the resources which type matches the one set at the urlresource of type and name set in url.
Response Example
Code Block
themeEclipse
languagehtml/xml
No Format
584c96d5-<resources>
  <resource>b6c3a6c9-9a2e-4bc4-9604-13d014bd508f</resource>
  <resource>584c96d5-2221-47d0-8c51-c5d4d45f3ff4</resource>
</resources>

c5d4d45f3ff4