git://git.onelab.eu
/
sfa.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
rspec.version.add_nodes take an extra arg to handle Request RSpec
[sfa.git]
/
sfa
/
rspecs
/
elements
/
versions
/
sfav1Node.py
diff --git
a/sfa/rspecs/elements/versions/sfav1Node.py
b/sfa/rspecs/elements/versions/sfav1Node.py
index
997f395
..
5107698
100644
(file)
--- a/
sfa/rspecs/elements/versions/sfav1Node.py
+++ b/
sfa/rspecs/elements/versions/sfav1Node.py
@@
-1,6
+1,6
@@
from sfa.util.sfalogging import logger
from sfa.util.xml import XpathFilter
from sfa.util.sfalogging import logger
from sfa.util.xml import XpathFilter
-from sfa.util.xrn import Xrn
+from sfa.util.xrn import Xrn
, get_leaf
from sfa.rspecs.elements.element import Element
from sfa.rspecs.elements.node import NodeElement
from sfa.rspecs.elements.element import Element
from sfa.rspecs.elements.node import NodeElement
@@
-15,12
+15,11
@@
from sfa.rspecs.elements.versions.sfav1Sliver import SFAv1Sliver
from sfa.rspecs.elements.versions.sfav1PLTag import SFAv1PLTag
from sfa.rspecs.elements.versions.pgv2Services import PGv2Services
from sfa.rspecs.elements.versions.sfav1PLTag import SFAv1PLTag
from sfa.rspecs.elements.versions.pgv2Services import PGv2Services
-from sfa.planetlab.plxrn import xrn_to_hostname
class SFAv1Node:
@staticmethod
class SFAv1Node:
@staticmethod
- def add_nodes(xml, nodes):
+ def add_nodes(xml, nodes
, rspec_content_type=None
):
network_elems = xml.xpath('//network')
if len(network_elems) > 0:
network_elem = network_elems[0]
network_elems = xml.xpath('//network')
if len(network_elems) > 0:
network_elem = network_elems[0]
@@
-43,7
+42,7
@@
class SFAv1Node:
# set component_name attribute and hostname element
if 'component_id' in node and node['component_id']:
# set component_name attribute and hostname element
if 'component_id' in node and node['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)
hostname_elem = node_elem.add_element('hostname')
hostname_elem.set_text(component_name)
node_elem.set('component_name', component_name)
hostname_elem = node_elem.add_element('hostname')
hostname_elem.set_text(component_name)
@@
-94,6
+93,10
@@
class SFAv1Node:
tag_elem.set_text(tag['value'])
SFAv1Sliver.add_slivers(node_elem, node.get('slivers', []))
tag_elem.set_text(tag['value'])
SFAv1Sliver.add_slivers(node_elem, node.get('slivers', []))
+ # add sliver tag in Request Rspec
+ if rspec_content_type == "request":
+ node_elem.add_instance('sliver', '', [])
+
@staticmethod
def add_slivers(xml, slivers):
component_ids = []
@staticmethod
def add_slivers(xml, slivers):
component_ids = []
@@
-143,7
+146,7
@@
class SFAv1Node:
node['authority_id'] = node_elem.attrib['site_id']
# get location
location_elems = node_elem.xpath('./default:location | ./location')
node['authority_id'] = node_elem.attrib['site_id']
# get location
location_elems = node_elem.xpath('./default:location | ./location')
- locations = [
loc_elem.get_instance(Location
) for loc_elem in location_elems]
+ locations = [
dict(loc_elem.get_instance(Location)
) for loc_elem in location_elems]
if len(locations) > 0:
node['location'] = locations[0]
# get bwlimit
if len(locations) > 0:
node['location'] = locations[0]
# get bwlimit
@@
-153,7
+156,7
@@
class SFAv1Node:
node['bwlimit'] = bwlimits[0]
# get interfaces
iface_elems = node_elem.xpath('./default:interface | ./interface')
node['bwlimit'] = bwlimits[0]
# get interfaces
iface_elems = node_elem.xpath('./default:interface | ./interface')
- ifaces = [
iface_elem.get_instance(Interface
) for iface_elem in iface_elems]
+ ifaces = [
dict(iface_elem.get_instance(Interface)
) for iface_elem in iface_elems]
node['interfaces'] = ifaces
# get services
node['services'] = PGv2Services.get_services(node_elem)
node['interfaces'] = ifaces
# get services
node['services'] = PGv2Services.get_services(node_elem)
@@
-163,7
+166,7
@@
class SFAv1Node:
node['tags'] = SFAv1PLTag.get_pl_tags(node_elem, ignore=NodeElement.fields+["hardware_type"])
# get hardware types
hardware_type_elems = node_elem.xpath('./default:hardware_type | ./hardware_type')
node['tags'] = SFAv1PLTag.get_pl_tags(node_elem, ignore=NodeElement.fields+["hardware_type"])
# get hardware types
hardware_type_elems = node_elem.xpath('./default:hardware_type | ./hardware_type')
- node['hardware_types'] = [
hw_type.get_instance(HardwareType
) for hw_type in hardware_type_elems]
+ node['hardware_types'] = [
dict(hw_type.get_instance(HardwareType)
) for hw_type in hardware_type_elems]
# temporary... play nice with old slice manager rspec
if not node['component_name']:
# temporary... play nice with old slice manager rspec
if not node['component_name']: