X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Fplc%2Fslices.py;h=9cbff41ebabfd656c2b7600512b42adaee1298b1;hb=ec3e398a24ba761666d5124f09c1a2fedd8af3b3;hp=18c7584057e3e542560da52795d921b4a29421b2;hpb=11d02cbfd5e91784119bb9377fceb4fa6adae621;p=sfa.git diff --git a/sfa/plc/slices.py b/sfa/plc/slices.py index 18c75840..9cbff41e 100644 --- a/sfa/plc/slices.py +++ b/sfa/plc/slices.py @@ -277,6 +277,9 @@ class Slices(SimpleStorage): else: site_id = sites[0]['site_id'] remote_site_id = sites[0]['peer_site_id'] + old_site = sites[0] + #the site is alredy on the remote agg. Let us update(e.g. max_slices field) it with the latest info. + self.sync_site(old_site, site, peer) return (site_id, remote_site_id) @@ -484,11 +487,23 @@ class Slices(SimpleStorage): return 1 + def sync_site(self, old_record, new_record, peer): + if old_record['max_slices'] != new_record['max_slices'] or old_record['max_slivers'] != new_record['max_slivers']: + if peer: + self.api.plshell.UnBindObjectFromPeer(self.api.plauth, 'site', old_record['site_id'], peer) + if old_record['max_slices'] != new_record['max_slices']: + self.api.plshell.UpdateSite(self.api.plauth, old_record['site_id'], {'max_slices' : new_record['max_slices']}) + if old_record['max_slivers'] != new_record['max_slivers']: + self.api.plshell.UpdateSite(self.api.plauth, old_record['site_id'], {'max_slivers' : new_record['max_slivers']}) + if peer: + self.api.plshell.BindObjectToPeer(self.api.plauth, 'site', old_record['site_id'], peer, old_record['peer_site_id']) + return 1 + def sync_slice(self, old_record, new_record, peer): if old_record['expires'] != new_record['expires']: if peer: self.api.plshell.UnBindObjectFromPeer(self.api.plauth, 'slice', old_record['slice_id'], peer) - self.api.plshell.UpdateSlice(self.api.plauth, old_record['slice_id'], {'expires' : new_record['expires']}) + self.api.plshell.UpdateSlice(self.api.plauth, old_record['slice_id'], {'expires' : new_record['expires']}) if peer: self.api.plshell.BindObjectToPeer(self.api.plauth, 'slice', old_record['slice_id'], peer, old_record['peer_slice_id']) return 1