fix errors
authorTony Mack <tmack@paris.CS.Princeton.EDU>
Fri, 11 Nov 2011 06:23:15 +0000 (01:23 -0500)
committerTony Mack <tmack@paris.CS.Princeton.EDU>
Fri, 11 Nov 2011 06:23:15 +0000 (01:23 -0500)
sfa/plc/aggregate.py
sfa/rspecs/elements/versions/pgv2Services.py
sfa/rspecs/elements/versions/sfav1Sliver.py

index c394bab..b784355 100644 (file)
@@ -179,7 +179,7 @@ class Aggregate:
             rspec_node['authority_id'] = hrn_to_urn(PlXrn.site_hrn(self.api.hrn, site['login_base']), 'authority+sa')
             rspec_node['boot_state'] = node['boot_state']
             rspec_node['exclusive'] = 'False'
-            rspec_node['hardware_types'].append(HardwareType({'name': 'plab-vserver'}))
+            rspec_node['hardware_types']= [HardwareType({'name': 'plab-vserver'})]
             # only doing this because protogeni rspec needs
             # to advertise available initscripts 
             rspec_node['pl_initscripts'] = pl_initscripts.values()
@@ -210,7 +210,7 @@ class Aggregate:
                 # slivers always provide the ssh service
                 login = Login({'authentication': 'ssh-keys', 'hostname': node['hostname'], 'port':'22'})
                 service = Services({'login': login})
-                rspec_node['services'].append(service)
+                rspec_node['services'] = [service]
             rspec_nodes.append(rspec_node)
         return rspec_nodes
              
@@ -226,8 +226,8 @@ class Aggregate:
 
         slice, slivers = self.get_slice_and_slivers(slice_xrn)
         rspec = RSpec(version=rspec_version, user_options=self.user_options)
-        if slice and 'expiration_date' in slice:
-            rspec.set('expires',  epochparse(slice['expiration_date'])) 
+        if slice and 'expires' in slice:
+            rspec.xml.set('expires',  epochparse(slice['expires'])) 
         rspec.version.add_nodes(self.get_nodes(slice, slivers))
         rspec.version.add_links(self.get_links(slice))
         
index 5a7c70f..9eb1ed9 100644 (file)
@@ -6,6 +6,9 @@ from sfa.rspecs.elements.login import Login
 class PGv2Services:
     @staticmethod
     def add_services(xml, services):
+        if not services:
+            return 
+
         for service in services:
             service_elem = xml.add_element('services')
             Element.add_elements(service_elem, 'install', service.get('install', []), Install.fields) 
index 6045606..22989f9 100644 (file)
@@ -7,6 +7,8 @@ class SFAv1Sliver:
 
     @staticmethod
     def add_slivers(xml, slivers):
+        if not slivers:
+            return
         if not isinstance(slivers, list):
             slivers = [slivers]
         for sliver in slivers: