X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Frspecs%2Felements%2Fversions%2Fiotlabv1Node.py;h=df3dc6cc7c5e4c8d10ff26f3b0fbb76eb275b700;hb=ed21507f990ecf9c49887283fb44e9c92a8624f9;hp=8681108cd1f51360a8ae56e189b8b3cf8f92b582;hpb=58edd1cb7f56a14de9ed77c833d6f0c8da33ee56;p=sfa.git diff --git a/sfa/rspecs/elements/versions/iotlabv1Node.py b/sfa/rspecs/elements/versions/iotlabv1Node.py index 8681108c..df3dc6cc 100644 --- a/sfa/rspecs/elements/versions/iotlabv1Node.py +++ b/sfa/rspecs/elements/versions/iotlabv1Node.py @@ -10,9 +10,9 @@ from sfa.rspecs.elements.interface import Interface 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']) @@ -54,7 +54,21 @@ class Iotlabv1Node: @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: @@ -134,6 +148,11 @@ class Iotlabv1Node: #'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 @@ -184,6 +203,12 @@ class Iotlabv1Node: 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)