def setUp(self): try: bpio.rmdir_recursive('/tmp/.bitdust_tmp') except Exception: pass lg.set_debug_level(30) settings.init(base_dir='/tmp/.bitdust_tmp') try: os.makedirs('/tmp/.bitdust_tmp/metadata') except: pass automat.OpenLogFile('/tmp/.bitdust_tmp/logs/automats.log') self.my_current_key = None fout = open('/tmp/_some_priv_key', 'w') fout.write(_some_priv_key) fout.close() fout = open(settings.LocalIdentityFilename(), 'w') fout.write(_some_identity_xml) fout.close() self.assertTrue(key.LoadMyKey(keyfilename='/tmp/_some_priv_key')) self.assertTrue(my_id.loadLocalIdentity()) my_id.init() try: os.makedirs('/tmp/.bitdust_tmp/logs') except: pass local_fs.WriteTextFile('/tmp/.bitdust_tmp/logs/parallelp.log', '') tmpfile.init(temp_dir_path='/tmp/.bitdust_tmp/temp/') os.makedirs( '/tmp/.bitdust_tmp/backups/[email protected]_8084/1/F1234') try: bpio.rmdir_recursive('/tmp/_some_folder', ignore_errors=True) except: pass os.makedirs('/tmp/_some_folder')
def save_customers(path=None, save_meta_info=False): """ Write current customers list on the disk, ``path`` is a file path to save. """ global _CustomersMetaInfo if path is None: path = settings.CustomerIDsFilename() lst = customers() lst = list(map(strng.to_text, lst)) bpio._write_list(path, lst) if save_meta_info: json_info = id_url.to_bin_dict(_CustomersMetaInfo) local_fs.WriteTextFile( settings.CustomersMetaInfoFilename(), jsn.dumps( json_info, indent=2, sort_keys=True, keys_to_text=True, )) if _Debug: lg.out( _DebugLevel, 'contactsdb.save_customers save_meta_info=%r : %r' % ( save_meta_info, lst, ))
def doInitInterfaces(self, *args, **kwargs): if _Debug: lg.out(_DebugLevel, 'initializer.doInitInterfaces') # if settings.enableFTPServer(): # try: # from interface import ftp_server # ftp_server.init() # except: # lg.exc() if settings.enableAPIAuthSecret(): current_secret = local_fs.ReadTextFile(settings.APISecretFile()) if not current_secret: new_secret = cipher.generate_secret_text(10) local_fs.WriteTextFile(settings.APISecretFile(), new_secret) lg.info('generated new API auth secret text and stored in %r' % settings.APISecretFile()) if settings.enableRESTHTTPServer(): try: from interface import api_rest_http_server api_rest_http_server.init(port=settings.getRESTHTTPServerPort()) except: lg.exc() if settings.enableWebSocketServer(): try: from interface import api_web_socket api_web_socket.init(port=settings.getWebSocketServerPort()) except: lg.exc() reactor.callLater(0, self.automat, 'init-interfaces-done') # @UndefinedVariable
def write_state(customer_id, broker_id, json_value): service_dir = settings.ServiceDir('service_message_broker') keepers_dir = os.path.join(service_dir, 'keepers') broker_dir = os.path.join(keepers_dir, broker_id) keeper_state_file_path = os.path.join(broker_dir, customer_id) if json_value is None: if os.path.isfile(keeper_state_file_path): try: os.remove(keeper_state_file_path) except: lg.exc() if _Debug: lg.args(_DebugLevel, customer_id=customer_id, broker_id=broker_id) return None if not os.path.isdir(broker_dir): try: os.makedirs(broker_dir) except: lg.exc() return None if not local_fs.WriteTextFile(keeper_state_file_path, jsn.dumps(json_value)): lg.err('failed writing queue_keeper state for customer %r of broker %r to %r' % ( customer_id, broker_id, keeper_state_file_path, )) return None if _Debug: lg.args(_DebugLevel, customer_id=customer_id, broker_id=broker_id, json_value=json_value) return json_value
def add_customer_meta_info(customer_idurl, info): """ """ global _CustomersMetaInfo customer_idurl = strng.to_bin(customer_idurl.strip()) if customer_idurl not in _CustomersMetaInfo: if _Debug: lg.out( _DebugLevel, 'contactsdb.add_customer_meta_info store new meta info for customer %r: %r' % ( customer_idurl, info, )) _CustomersMetaInfo[customer_idurl] = {} else: if _Debug: lg.out( _DebugLevel, 'contactsdb.add_customer_meta_info update existing meta info for customer %r: %r' % ( customer_idurl, info, )) _CustomersMetaInfo[customer_idurl].update(info) local_fs.WriteTextFile( settings.CustomersMetaInfoFilename(), jsn.dumps( _CustomersMetaInfo, indent=2, sort_keys=True, )) return _CustomersMetaInfo
def add_customer_meta_info(customer_idurl, info): """ """ global _CustomersMetaInfo customer_idurl = id_url.field(customer_idurl) if not customer_idurl.is_latest(): if customer_idurl.original() in _CustomersMetaInfo: if customer_idurl.to_bin() not in _CustomersMetaInfo: _CustomersMetaInfo[ customer_idurl.to_bin()] = _CustomersMetaInfo.pop( customer_idurl.original()) lg.info( 'detected and processed idurl rotate for customer meta info : %r -> %r' % (customer_idurl.original(), customer_idurl.to_bin())) customer_idurl = id_url.to_bin(customer_idurl) if 'family_snapshot' in info: info['family_snapshot'] = id_url.to_bin_list(info['family_snapshot']) if 'ecc_map' in info: info['ecc_map'] = strng.to_text(info['ecc_map']) if customer_idurl not in _CustomersMetaInfo: if _Debug: lg.out( _DebugLevel, 'contactsdb.add_customer_meta_info store new meta info for customer %r: %r' % ( customer_idurl, info, )) _CustomersMetaInfo[customer_idurl] = {} else: if _Debug: lg.out( _DebugLevel, 'contactsdb.add_customer_meta_info update existing meta info for customer %r: %r' % ( customer_idurl, info, )) _CustomersMetaInfo[customer_idurl].update(info) json_info = { k: jsn.dict_keys_to_text(v) for k, v in id_url.to_bin_dict(_CustomersMetaInfo).items() } try: raw_data = jsn.dumps( json_info, indent=2, sort_keys=True, keys_to_text=True, values_to_text=True, ) except: lg.exc() return None local_fs.WriteTextFile(settings.CustomersMetaInfoFilename(), raw_data) return _CustomersMetaInfo
def save_group_info(group_key_id): if not is_group_exist(group_key_id): lg.warn('group %r is not known' % group_key_id) return False group_info = known_groups()[group_key_id] service_dir = settings.ServiceDir('service_private_groups') groups_dir = os.path.join(service_dir, 'groups') group_info_path = os.path.join(groups_dir, group_key_id) if not os.path.isdir(groups_dir): bpio._dirs_make(groups_dir) ret = local_fs.WriteTextFile(group_info_path, jsn.dumps(group_info)) if _Debug: lg.args(_DebugLevel, group_key_id=group_key_id, group_info_path=group_info_path, ret=ret) return ret
def remove_customer_meta_info(customer_idurl): """ """ global _CustomersMetaInfo customer_idurl = strng.to_bin(customer_idurl.strip()) if customer_idurl not in _CustomersMetaInfo: lg.warn('meta info for customer %r not exist' % customer_idurl) return False if _Debug: lg.out(_DebugLevel, 'contactsdb.remove_customer_meta_info erase existing meta info for customer %r' % customer_idurl) _CustomersMetaInfo.pop(customer_idurl) local_fs.WriteTextFile(settings.CustomersMetaInfoFilename(), jsn.dumps( _CustomersMetaInfo, indent=2, sort_keys=True, keys_to_text=True, )) return True
def write_customers_meta_info_all(new_customers_info): """ """ global _CustomersMetaInfo _CustomersMetaInfo = new_customers_info json_info = {k: jsn.dict_keys_to_text(v) for k, v in id_url.to_bin_dict(_CustomersMetaInfo).items()} try: raw_data = jsn.dumps( json_info, indent=2, sort_keys=True, keys_to_text=True, values_to_text=True, ) except: lg.exc() return None local_fs.WriteTextFile(settings.CustomersMetaInfoFilename(), raw_data) return _CustomersMetaInfo
def save_customers(path=None, save_meta_info=False): """ Write current customers list on the disk, ``path`` is a file path to save. """ global _CustomersMetaInfo if path is None: path = settings.CustomerIDsFilename() lst = customers() lst = list(map(strng.to_text, lst)) bpio._write_list(path, lst) if save_meta_info: local_fs.WriteTextFile(settings.CustomersMetaInfoFilename(), jsn.dumps(_CustomersMetaInfo)) if _Debug: lg.out(_DebugLevel, 'contactsdb.save_customers : %r' % lst)
def setUp(self): try: bpio.rmdir_recursive('/tmp/.bitdust_tmp') except Exception: pass settings.init(base_dir='/tmp/.bitdust_tmp') lg.set_debug_level(30) try: os.makedirs('/tmp/.bitdust_tmp/logs') except: pass local_fs.WriteTextFile('/tmp/.bitdust_tmp/logs/parallelp.log', '') if self.child_processes_enabled: config.conf().setBool( 'services/rebuilding/child-processes-enabled', True) else: config.conf().setBool( 'services/rebuilding/child-processes-enabled', False)
def set_broker(customer_id, broker_id, position=0): service_dir = settings.ServiceDir('service_private_groups') brokers_dir = os.path.join(service_dir, 'brokers') customer_dir = os.path.join(brokers_dir, customer_id) broker_path = os.path.join(customer_dir, broker_id) if os.path.isfile(broker_path): lg.warn('broker %r already exist for customer %r, overwriting' % (broker_id, customer_id, )) if not os.path.isdir(customer_dir): bpio._dirs_make(customer_dir) broker_info = { 'position': position, } if not local_fs.WriteTextFile(broker_path, jsn.dumps(broker_info)): lg.err('failed to set broker %r at position %d for customer %r' % (broker_id, position, customer_id, )) return False known_brokers(customer_id)[position] = broker_id if _Debug: lg.args(_DebugLevel, customer_id=customer_id, broker_id=broker_id, broker_info=broker_info) return True
def remove_customer_meta_info(customer_idurl): """ """ global _CustomersMetaInfo customer_idurl = id_url.field(customer_idurl) if not customer_idurl.is_latest(): if customer_idurl.original() in _CustomersMetaInfo: if customer_idurl.to_bin() not in _CustomersMetaInfo: _CustomersMetaInfo[ customer_idurl.to_bin()] = _CustomersMetaInfo.pop( customer_idurl.original()) lg.info( 'detected and processed idurl rotate for customer meta info : %r -> %r' % (customer_idurl.original(), customer_idurl.to_bin())) customer_idurl = id_url.to_bin(customer_idurl) if customer_idurl not in _CustomersMetaInfo: lg.warn('meta info for customer %r not exist' % customer_idurl) return False if _Debug: lg.out( _DebugLevel, 'contactsdb.remove_customer_meta_info erase existing meta info for customer %r' % customer_idurl) _CustomersMetaInfo.pop(customer_idurl) json_info = { k: jsn.dict_keys_to_text(v) for k, v in id_url.to_bin_dict(_CustomersMetaInfo).items() } local_fs.WriteTextFile( settings.CustomersMetaInfoFilename(), jsn.dumps( json_info, indent=2, sort_keys=True, keys_to_text=True, values_to_text=True, )) return True
def set_broker(customer_id, broker_id, position=0): customer_id = global_id.latest_glob_id(customer_id) broker_id = global_id.latest_glob_id(broker_id) service_dir = settings.ServiceDir('service_private_groups') brokers_dir = os.path.join(service_dir, 'brokers') customer_dir = os.path.join(brokers_dir, customer_id) broker_path = os.path.join(customer_dir, broker_id) if not os.path.isdir(customer_dir): bpio._dirs_make(customer_dir) if os.path.isfile(broker_path): if _Debug: lg.dbg(_DebugLevel, 'broker %r already exist for customer %r, overwriting' % (broker_id, customer_id, )) broker_info = { 'position': position, } prev_borker_id = known_brokers(customer_id)[position] if prev_borker_id: if prev_borker_id == broker_id: if _Debug: lg.args(_DebugLevel, customer_id=customer_id, position=position, broker_id=broker_id, prev_borker_id=prev_borker_id) return True prev_broker_path = os.path.join(customer_dir, prev_borker_id) if os.path.isfile(prev_broker_path): lg.info('replacing existing broker for customer %r at position %d : %r -> %r' % ( customer_id, position, prev_borker_id, broker_id, )) try: os.remove(prev_broker_path) except: lg.exc() return False if not local_fs.WriteTextFile(broker_path, jsn.dumps(broker_info)): lg.err('failed to set broker %r at position %d for customer %r' % (broker_id, position, customer_id, )) return False known_brokers(customer_id)[position] = broker_id if _Debug: lg.args(_DebugLevel, customer_id=customer_id, broker_id=broker_id, broker_info=broker_info) return True
def WriteTextFile(filepath, data): return local_fs.WriteTextFile(filepath=filepath, data=data)