from sfa.rspecs.elements.versions.iotlabv1Sliver import Iotlabv1Sliver
from sfa.util.sfalogging import logger
-class IotlabNode(Node):
+class IotlabNode(NodeElement):
#First get the fields already defined in the class Node
- fields = list(Node.fields)
+ fields = list(NodeElement.fields)
#Extend it with iotlab's specific fields
fields.extend (['archi', 'radio', 'mobile','position'])
@staticmethod
- def add_nodes(xml, nodes):
+ def add_nodes(xml, nodes, rspec_content_type=None):
+ """Adds the nodes to the xml.
+
+ Adds the nodes as well as dedicated iotlab fields to the node xml
+ element.
+
+ :param xml: the xml being constructed.
+ :type xml: xml
+ :param nodes: list of node dict
+ :type nodes: list
+ :returns: a list of node elements.
+ :rtype: list
+
+ """
+>>>>>>> f7d277c... rspec.version.add_nodes take an extra arg to handle Request RSpec
#Add network item in the xml
network_elems = xml.xpath('//network')
if len(network_elems) > 0:
#'value': initscript['name']})
Iotlabv1Sliver.add_slivers(node_elem, slivers)
+
+ # add sliver tag in Request Rspec
+ if rspec_content_type == "request":
+ node_elem.add_instance('sliver', '', [])
+
return node_elems
node['interfaces'] = [iface_elem.get_instance(Interface) \
for iface_elem in iface_elems]
+ # get position
+ position_elems = node_elem.xpath('./default:position | ./position')
+ if position_elems:
+ position_elem = position_elems[0]
+ node['position'] = position_elem.get_instance(IotlabPosition)
+
# get services
#node['services'] = PGv2Services.get_services(node_elem)