start = time.time()
print >>log, 'Issuing GetPeerData'
peer_tables = peer.GetPeerData()
+ # for smooth federation with 4.3 - rewrite boot_state
+ boot_state_rewrite={'safeboot':'dbg','disabled':'disable', 'reinstall':'rins'}
+ for node in peer_tables['Nodes']:
+ if node['boot_state'] in boot_state_rewrite: node['boot_state']=boot_state_rewrite[node['boot_state']]
timers['transport'] = time.time() - start - peer_tables['db_time']
timers['peer_db'] = peer_tables['db_time']
if verbose:
print >>log, 'GetPeerData returned -> db=%d transport=%d'%(timers['peer_db'],timers['transport'])
+
def sync(objects, peer_objects, classobj):
"""
Synchronizes two dictionaries of objects. objects should
"""
assert 'node_id' in self
- assert 'nodenetwork_ids' in self
# we need to clean up NodeNetworkSettings, so handling nodenetworks as part of join_tables does not work
- for nodenetwork in NodeNetworks(self.api,self['nodenetwork_ids']):
- nodenetwork.delete()
+ # federated nodes don't have interfaces though so for smooth transition from 4.2 to 4.3
+ if 'peer_id' in self and self['peer_id']:
+ pass
+ else:
+ assert 'nodenetwork_ids' in self
+ for nodenetwork in NodeNetworks(self.api,self['nodenetwork_ids']):
+ nodenetwork.delete()
# Clean up miscellaneous join tables
for table in self.join_tables: