Add exclusive tag in order to distinguish between reservable \n and shared nodes...
authorMohamed Larabi <mohamed.larabi@inria.fr>
Wed, 26 Sep 2012 14:25:30 +0000 (16:25 +0200)
committerMohamed Larabi <mohamed.larabi@inria.fr>
Wed, 26 Sep 2012 14:25:30 +0000 (16:25 +0200)
sfa/planetlab/plaggregate.py
sfa/rspecs/elements/versions/sfav1Node.py

index c4f2db8..00e6207 100644 (file)
@@ -203,7 +203,13 @@ class PlAggregate:
             # do not include boot state (<available> element) in the manifest rspec
             if not slice:     
                 rspec_node['boot_state'] = node['boot_state']
-            rspec_node['exclusive'] = 'false'
+
+            #add the exclusive tag to distinguish between Shared and Reservable nodes
+            if node['node_type'] == 'reservable':
+                rspec_node['exclusive'] = 'true'
+            else:
+                rspec_node['exclusive'] = 'false'
+
             rspec_node['hardware_types'] = [HardwareType({'name': 'plab-pc'}),
                                             HardwareType({'name': 'pc'})]
             # only doing this because protogeni rspec needs
index 024a52e..3ffc6c3 100644 (file)
@@ -57,10 +57,16 @@ class SFAv1Node:
             if location:
                 node_elem.add_instance('location', location, Location.fields)
 
-            # add granularity of the reservation system
-            granularity = node.get('granularity')
-            if granularity:
-                node_elem.add_instance('granularity', granularity, granularity.fields)
+            # add exclusive tag to distinguish between Reservable and Shared nodes
+            exclusive_elem = node_elem.add_element('exclusive')
+            if node.get('exclusive') and node.get('exclusive') == 'true':
+                exclusive_elem.set_text('TRUE')
+                # add granularity of the reservation system
+                granularity = node.get('granularity')
+                if granularity:
+                    node_elem.add_instance('granularity', granularity, granularity.fields)
+            else:
+                exclusive_elem.set_text('FALSE')
 
 
             if isinstance(node.get('interfaces'), list):