X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Frspecs%2Felements%2Fversions%2Fpgv2Node.py;h=0a694ad10f756dd99d6b9b7a12888bbe8ee76aab;hb=ed21507f990ecf9c49887283fb44e9c92a8624f9;hp=769a72f68df140c34a9188c49160052c598bc736;hpb=c3de61fe710643aa025945ab0879f2769f57e7dd;p=sfa.git diff --git a/sfa/rspecs/elements/versions/pgv2Node.py b/sfa/rspecs/elements/versions/pgv2Node.py index 769a72f6..0a694ad1 100644 --- a/sfa/rspecs/elements/versions/pgv2Node.py +++ b/sfa/rspecs/elements/versions/pgv2Node.py @@ -1,4 +1,4 @@ -from sfa.util.xrn import Xrn +from sfa.util.xrn import Xrn, get_leaf from sfa.util.xml import XpathFilter from sfa.rspecs.elements.node import NodeElement @@ -16,11 +16,10 @@ from sfa.rspecs.elements.versions.sfav1PLTag import SFAv1PLTag from sfa.rspecs.elements.granularity import Granularity from sfa.rspecs.elements.attribute import Attribute -from sfa.planetlab.plxrn import xrn_to_hostname class PGv2Node: @staticmethod - def add_nodes(xml, nodes): + def add_nodes(xml, nodes, rspec_content_type=None): node_elems = [] for node in nodes: node_fields = ['component_manager_id', 'component_id', 'client_id', 'sliver_id', 'exclusive'] @@ -28,7 +27,7 @@ class PGv2Node: node_elems.append(node_elem) # set component name if node.get('component_id'): - component_name = xrn_to_hostname(node['component_id']) + component_name = Xrn.unescape(get_leaf(Xrn(node['component_id']).get_hrn())) node_elem.set('component_name', component_name) # set hardware types if node.get('hardware_types'): @@ -39,7 +38,7 @@ class PGv2Node: node_elem.add_instance('location', node['location'], Location.fields) # set granularity - if node['exclusive'] == "true": + if node.get('exclusive') == "true": granularity = node.get('granularity') node_elem.add_instance('granularity', granularity, granularity.fields) # set interfaces @@ -71,6 +70,10 @@ class PGv2Node: tag['name'] = tag.pop('tagname') node_elem.add_instance('{%s}attribute' % xml.namespaces['planetlab'], tag, ['name', 'value']) + # add sliver tag in Request Rspec + if rspec_content_type == "request": + node_elem.add_instance('sliver', '', []) + return node_elems