mirror of
https://github.com/alexgo-io/stacks-puppet-node.git
synced 2026-05-12 16:22:53 +08:00
Added:
-- UNIX bash scripts for polling in a loop (to be used with cron) -- Added multi-threaded test code (debug2 to-remove) -- First stab at state-machine of profile registrations and what state triggers what func
This commit is contained in:
@@ -19,10 +19,8 @@ from config import LOAD_BALANCER
|
||||
#-----------------------------------
|
||||
from pymongo import MongoClient
|
||||
client = MongoClient()
|
||||
|
||||
local_db = client['namecoin']
|
||||
queue = local_db.queue
|
||||
codes = local_db.codes
|
||||
|
||||
from config import MONGODB_URI
|
||||
remote_client = MongoClient(MONGODB_URI)
|
||||
@@ -64,7 +62,7 @@ def save_name_new_info(info,key,value):
|
||||
del reply['_id'] #reply[_id] is causing a json encode error
|
||||
|
||||
except Exception as e:
|
||||
reply['message'] = "ERROR:" + str(e)
|
||||
reply['message'] = "ERROR: " + str(e)
|
||||
|
||||
return reply
|
||||
|
||||
@@ -234,85 +232,3 @@ def process_additional_keys(keys,values):
|
||||
register_name(next_key,next_value)
|
||||
|
||||
index += 1
|
||||
|
||||
#-----------------------------------
|
||||
def set_backend_server(DISTRIBUTE=True):
|
||||
|
||||
DEFAULT_SERVER = 2
|
||||
BACKEND_SERVER_FOR_RESERVER = 1
|
||||
loadbalancer_counter = 0
|
||||
|
||||
for i in users.find():
|
||||
|
||||
if 'dispatched' in i and i['dispatched'] is False:
|
||||
|
||||
loadbalancer_counter += 1
|
||||
|
||||
if(loadbalancer_counter == 8):
|
||||
loadbalancer_counter = 0
|
||||
|
||||
#hardcoded backend_server for reserved names
|
||||
if 'backend_server' not in i:
|
||||
selected_server = DEFAULT_SERVER
|
||||
|
||||
if 'accesscode' in i:
|
||||
print "found reserved user, " + i['username'] + " using backend_server ", BACKEND_SERVER_FOR_RESERVER
|
||||
selected_server = BACKEND_SERVER_FOR_RESERVER
|
||||
else:
|
||||
if DISTRIBUTE:
|
||||
selected_server = loadbalancer_counter
|
||||
|
||||
i['backend_server'] = selected_server
|
||||
users.save(i)
|
||||
|
||||
print "sending " + i['username'] + " to backend_server " + str(selected_server)
|
||||
|
||||
#-----------------------------------
|
||||
def check_new_registrations(LIVE=True):
|
||||
|
||||
registered_counter = 0
|
||||
unregistered_counter = 0
|
||||
|
||||
print '-' * 5
|
||||
print "Checking for new users"
|
||||
for user in registrations.find():
|
||||
|
||||
if 'dispatched' in user and user['dispatched'] is False:
|
||||
|
||||
unregistered_counter += 1
|
||||
|
||||
if ('backend_server' in user) and (user['backend_server'] == int(LOAD_BALANCER)):
|
||||
if LIVE:
|
||||
try:
|
||||
process_user(user['username'],json.loads(user['profile']))
|
||||
print user['backend_server']
|
||||
except Exception as e:
|
||||
print e
|
||||
continue
|
||||
|
||||
username = 'u/' + user['username'].lower()
|
||||
extended = 'i/' + user['username'].lower() + '-1'
|
||||
|
||||
local = queue.find_one({'key':username})
|
||||
if local is not None:
|
||||
print "in local DB"
|
||||
if LIVE:
|
||||
user['dispatched'] = True
|
||||
user['accepted'] = True
|
||||
users.save(user)
|
||||
|
||||
print '-' * 5
|
||||
else:
|
||||
registered_counter += 1
|
||||
|
||||
|
||||
print "Registered users: ", registered_counter
|
||||
print "Not registered users: ", unregistered_counter
|
||||
|
||||
#-----------------------------------
|
||||
if __name__ == '__main__':
|
||||
|
||||
LIVE = True
|
||||
DISTRIBUTE = False
|
||||
set_backend_server(DISTRIBUTE)
|
||||
check_new_registrations(LIVE)
|
||||
@@ -21,6 +21,8 @@ from encrypt.bip38 import bip38_decrypt
|
||||
import datetime
|
||||
import hashlib
|
||||
|
||||
from time import sleep
|
||||
|
||||
#-----------------------------------
|
||||
remote_client = MongoClient(MONGODB_URI)
|
||||
remote_db = remote_client.get_default_database()
|
||||
@@ -35,9 +37,10 @@ old_users = old_db.user
|
||||
|
||||
local_client = MongoClient()
|
||||
local_db = local_client['namecoin']
|
||||
queue = local_db.queue
|
||||
queue_register = local_db.queue
|
||||
queue_update = local_db.queue_update
|
||||
|
||||
problem_users = ['madmoneymachine', 'drmox']
|
||||
problem_users = ['madmoneymachine', 'drmox', 'emiljohansson','xfaure','megaz28','maxweiss','kh','patrickcines']
|
||||
|
||||
#-----------------------------------
|
||||
def process_profile(username,profile):
|
||||
@@ -45,11 +48,18 @@ def process_profile(username,profile):
|
||||
if username in problem_users:
|
||||
return
|
||||
|
||||
#check if already in queue
|
||||
check_queue = queue.find_one({"key":'u/' + username})
|
||||
#check if already in register queue (name_new)
|
||||
check_queue = queue_register.find_one({"key":'u/' + username})
|
||||
|
||||
if check_queue is not None:
|
||||
print "Already in processing queue: " + str(username)
|
||||
print "Already in register queue: " + str(username)
|
||||
return
|
||||
|
||||
#check if already in update queue (name_update)
|
||||
check_queue = queue_update.find_one({"key":'u/' + username})
|
||||
|
||||
if check_queue is not None:
|
||||
print "Already in update queue: " + str(username)
|
||||
return
|
||||
|
||||
#check if load-balancer is correct
|
||||
@@ -57,7 +67,8 @@ def process_profile(username,profile):
|
||||
|
||||
if old_user is not None:
|
||||
if old_user['backend_server'] != int(LOAD_BALANCER):
|
||||
print "Not on this server: " + str(username)
|
||||
print "Not on this server: " + str(username)
|
||||
print "Run on server: " + str(old_user['backend_server'])
|
||||
return
|
||||
|
||||
process_user(username,profile)
|
||||
@@ -93,12 +104,10 @@ def register_users():
|
||||
|
||||
if datetime.datetime.utcnow() - new_user['created_at'] > datetime.timedelta(minutes=15):
|
||||
print "Dispatch: " + user['username']
|
||||
if user['username'] == "drmox":
|
||||
pass
|
||||
else:
|
||||
process_profile(user['username'],user['profile'])
|
||||
new_user['dispatched'] = True
|
||||
registrations.save(new_user)
|
||||
|
||||
process_profile(user['username'],user['profile'])
|
||||
new_user['dispatched'] = True
|
||||
registrations.save(new_user)
|
||||
else:
|
||||
print "New user (within 15 mins): " + user['username']
|
||||
|
||||
@@ -114,13 +123,16 @@ def register_users():
|
||||
else:
|
||||
if datetime.datetime.utcnow() - new_user['created_at'] > datetime.timedelta(minutes=90):
|
||||
|
||||
print "Re-sending after 90 mins: " + user['username']
|
||||
print "Problem (90 mins): " + user['username']
|
||||
#print "Re-sending after 180 mins: " + user['username']
|
||||
#process_profile(user['username'],user['profile'])
|
||||
|
||||
else:
|
||||
print "Random: " + user['username']
|
||||
#registrations.remove(new_user)
|
||||
|
||||
sleep(1)
|
||||
|
||||
#-----------------------------------
|
||||
def check_users():
|
||||
|
||||
@@ -141,7 +153,7 @@ def check_users():
|
||||
pass
|
||||
else:
|
||||
print "Problem: " + user["username"]
|
||||
process_profile(user['username'],user['profile'])
|
||||
#process_profile(user['username'],user['profile'])
|
||||
|
||||
print "Users: " + str(counter)
|
||||
|
||||
@@ -157,6 +169,7 @@ def check_transfer():
|
||||
transfer.remove(new_user)
|
||||
else:
|
||||
print "Problem: " + user["username"]
|
||||
process_profile(user['username'],user['profile'])
|
||||
|
||||
#-----------------------------------
|
||||
def update_users():
|
||||
@@ -175,6 +188,9 @@ def update_users():
|
||||
#-----------------------------------
|
||||
def cleanup_db():
|
||||
|
||||
print "----------"
|
||||
print "Cleaning DB"
|
||||
|
||||
for new_user in updates.find():
|
||||
|
||||
user_id = new_user['user_id']
|
||||
@@ -201,21 +217,20 @@ def cleanup_db():
|
||||
if profile_on_blockchain(user["username"],user["profile"]):
|
||||
print "cleaning: " + user["username"]
|
||||
registrations.remove(new_user)
|
||||
|
||||
print "----------"
|
||||
|
||||
#-----------------------------------
|
||||
if __name__ == '__main__':
|
||||
|
||||
#check_users()
|
||||
#check_transfer()
|
||||
register_users()
|
||||
#update_users()
|
||||
|
||||
register_users()
|
||||
|
||||
cleanup_db()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -55,6 +55,7 @@ def main_loop(key, name=None):
|
||||
update_name(key,value)
|
||||
else:
|
||||
print "registered but not reserved: " + key
|
||||
#update_name(key,value)
|
||||
elif reply is not None:
|
||||
#currently being processed
|
||||
pass
|
||||
|
||||
Reference in New Issue
Block a user