...
Code Block |
---|
theme | Eclipse |
---|
language | html/xml |
---|
title | ResourceManager.wadl |
---|
collapse | true |
---|
|
<?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.
| Value | Description |
---|
URL | http://hostname:8888/opennaas/resources/ | |
Method | POST | |
Body Parameter | ResourceDescriptor | Resource descriptor containing the resource info (type, name, description) and its list of capabilities. |
Return | String | Resource 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 |
---|
theme | Eclipse |
---|
language | html/xml |
---|
title | CreateResource 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.
| Value | Description |
---|
URL | http://hostname:8888/opennaas/resources/modify/{resourceId} | |
Method | POST | |
Path Parameter | resourceId | Id of the resource to be modified. |
Body Parameter | ResourceDescriptor | Resource descriptor containing the new resource information. |
Return | String | Resource 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 |
---|
theme | Eclipse |
---|
language | html/xml |
---|
title | CreateResource 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>
<capabilityProperty name="actionset.name" value="junos"> <response>
</capabilityProperty>
<capabilityProperty name="actionset.version" value="10.10 <representation mediaType="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.
StopResource
The StopResource method stops a resource, only if it's in STARTED state.
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.
GetResourceTypes
List all the types of resources supported by the OpenNaaS instance.
Response Example
Code Block |
---|
|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<elements>
<element xsi:type="xs:string">bod</element>
<element xsi:type="xs:string">roadm</element>
<element xsi:type="xs:string">MACBridgeIOS</element>
<element xsi:type="xs:string">pdu</element>
<element xsi:type="xs:string">sampleresource</element>
<element xsi:type="xs:string">quantumresource</element>
<element xsi:type="xs:string">network</element>
<element xsi:type="xs:string">powernet</element>
<element xsi:type="xs:string">vnmapper</element>
<element xsi:type="xs:string">router</element>
<element xsi:type="xs:string">openflowswitch</element>
<element xsi:type="xs:string">vcpenet</element>
<element xsi:type="xs:string">ofnetwork</element>
</elements> |
GetNameFromResourceID
</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.
Response Example
Code Block |
---|
theme | Eclipse |
---|
language | html/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.
| Value | Description |
---|
URL | http://hostname:8888/opennaas/resources/ | |
Method | POST | |
Body Parameter | ResourceDescriptor | Resource descriptor containing the resource info (type, name, description) and its list of capabilities. |
Return | String | Resource 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 |
---|
theme | Eclipse |
---|
language | html/xml |
---|
title | CreateResource 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.
| Value | Description |
---|
URL | http://hostname:8888/opennaas/resources/{resourceId} | |
Method | PUT | |
Path Parameter | resourceId | Id of the resource to be modified. |
Body Parameter | ResourceDescriptor | Resource descriptor containing the new resource information. |
Return | String | Resource 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 |
---|
theme | Eclipse |
---|
language | html/xml |
---|
title | CreateResource 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.
DestroyAllResources
Stops and removes all existing resource of the OpenNaaS instance.
GetResourceInfoById
Returns the main information from a specific resource: id, name, type, state and the list of capabilities it contains.
Response Example
Code Block |
---|
theme | Eclipse |
---|
language | html/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.
Response Example
GetResourceDescriptor
Given the resourceId of an existing resource, this method returns its whole resource descriptor.
Response Example
Code Block |
---|
theme | Eclipse |
---|
language | html/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 resource.
Response Example
StartResource
The StartResource method starts a resource, only if it's in INITIALIZED stateGiven the resourceId of an existing resource, this method return its name.
Response Example
GetResourceDescriptor
StopResource
The StopResource method stops a resource, only if it's in STARTED stateGiven the resourceId of an existing resource, this method returns its whole resource descriptor.
Response Example
Code Block |
---|
theme | Eclipse |
---|
language | html/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
PUT | |
Path Parameter | resourceId | Id 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.
Response Example
Code Block |
---|
|
<?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.
Response Example
Code Block |
---|
theme | Eclipse |
---|
language | html/xml |
---|
|
<resources>
<resource>b6c3a6c9-9a2e-4bc4-9604-13d014bd508f</resource>
<resource>584c96d5-2221-47d0-8c51-c5d4d45f3ff4</resource>
</resources>
|
ListResourcesNameByType
Returns the list of all existing resources of a specific typeGiven the name and the type of an existing resource, this method returns its id.
Response Example
No Format |
---|
584c96d5-2221-47d0-8c51-c5d4d45f3ff4 |
GetStatus
Code Block |
---|
theme | Eclipse |
---|
language | html/xml |
---|
|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<resources>
<resource>dub_1_log</resource>
<resource>myre</resource>
<resource>logicalrouter1</resource>
</resources> |
GetIdentifierFromResourceTypeName
Given the name and the type of an existing resource, this method returns its idReturns the current lifecycle state of the resource.
Response Example
...
Returns the list of all existing resources of a specific type.
Response Example
Code Block |
---|
theme | Eclipse |
---|
language | html/xml |
---|
|
No Format |
---|
584c96d5-2221-47d0-8c51-c5d4d45f3ff4<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<elements>
<element xsi:type="xs:string">myre</element>
<element xsi:type="xs:string">gsn</element>
</elements> |