- pl_initscripts = node.get('pl_initscripts', {})
- for sliver in slivers:
- sliver_elem = etree.SubElement(node_elem, 'sliver_type')
- if sliver.get('name'):
- sliver_elem.set('name', sliver['name'])
- if sliver.get('client_id'):
- sliver_elem.set('client_id', sliver['client_id'])
- for pl_initscript in pl_initscripts.values():
- etree.SubElement(sliver_elem, '{%s}initscript' % xml.namespaces['planetlab'], \
- name=pl_initscript['name'])
- location = node.get('location')
- #only add locaiton if long and lat are not null
- if location.get('longitute') and location.get('latitude'):
- location_elem = etree.SubElement(node_elem, country=location['country'],
- latitude=location['latitude'], longitude=location['longiutde'])
+ if not slivers:
+ # we must still advertise the available sliver types
+ slivers = Sliver({'type': 'plab-vserver'})
+ # we must also advertise the available initscripts
+ slivers['tags'] = []
+ for initscript in node.get('pl_initscripts', []):
+ slivers['tags'].append({'name': 'initscript', 'value': initscript['name']})
+ PGv2SliverType.add_slivers(node_elem, slivers)
+