def doRestartLocalTester(self, arg): """ Action method. """ from supplier import local_tester local_tester.TestSpaceTime()
def on_identity_url_changed(evt): old_idurl = id_url.field(evt.data['old_idurl']) # update customer idurl in "space" file contacts_changed = False for customer_idurl in contactsdb.customers(): if old_idurl == customer_idurl: customer_idurl.refresh() contacts_changed = True lg.info('found customer idurl rotated : %r -> %r' % ( evt.data['old_idurl'], evt.data['new_idurl'], )) if contacts_changed: contactsdb.save_customers() # update meta info for that customer meta_info_changed = False all_meta_info = contactsdb.read_customers_meta_info_all() for customer_idurl_bin in list(all_meta_info.keys()): if id_url.is_cached(old_idurl) and id_url.is_cached( customer_idurl_bin): if old_idurl == id_url.field(customer_idurl_bin): latest_customer_idurl_bin = id_url.field( customer_idurl_bin).to_bin() if latest_customer_idurl_bin != customer_idurl_bin: all_meta_info[ latest_customer_idurl_bin] = all_meta_info.pop( customer_idurl_bin) meta_info_changed = True lg.info( 'found customer idurl rotated in customers meta info : %r -> %r' % ( latest_customer_idurl_bin, customer_idurl_bin, )) if meta_info_changed: contactsdb.write_customers_meta_info_all(all_meta_info) # update customer idurl in "space" file space_dict, free_space = accounting.read_customers_quotas() space_changed = False for customer_idurl_bin in list(space_dict.keys()): if id_url.is_cached(old_idurl) and id_url.is_cached( customer_idurl_bin): if id_url.field(customer_idurl_bin) == old_idurl: latest_customer_idurl_bin = id_url.field( customer_idurl_bin).to_bin() if latest_customer_idurl_bin != customer_idurl_bin: space_dict[latest_customer_idurl_bin] = space_dict.pop( customer_idurl_bin) space_changed = True lg.info( 'found customer idurl rotated in customer quotas dictionary : %r -> %r' % ( latest_customer_idurl_bin, customer_idurl_bin, )) if space_changed: accounting.write_customers_quotas(space_dict, free_space) # rename customer folder where I store all his files old_customer_dirname = str(global_id.UrlToGlobalID(evt.data['old_idurl'])) new_customer_dirname = str(global_id.UrlToGlobalID(evt.data['new_idurl'])) customers_dir = settings.getCustomersFilesDir() old_owner_dir = os.path.join(customers_dir, old_customer_dirname) new_owner_dir = os.path.join(customers_dir, new_customer_dirname) if os.path.isdir(old_owner_dir): try: bpio.move_dir_recursive(old_owner_dir, new_owner_dir) lg.info('copied %r into %r' % ( old_owner_dir, new_owner_dir, )) if os.path.exists(old_owner_dir): bpio._dir_remove(old_owner_dir) lg.warn('removed %r' % old_owner_dir) except: lg.exc() # update customer idurl in "spaceused" file local_tester.TestSpaceTime() return True