def register_user(): '''API users register''' username = request.args.get('username', type=str, default=None) password = request.args.get('password', type=str, default=None) config = ConfigParser.ConfigParser() metaConfig = recursiveSearchFile(project_abdir, '*alertConfig.ini')[0] config.read(metaConfig) engine = Init.Engine(config.get('META', 'user'), config.get('META', 'pwd'), config.get('META', 'host'), config.get('META', 'port'), config.get('META', 'db')) session = Init.Session(engine) try: Init.Insert_User(session, username, password) exec_info = "[action]:register user" \ "[status]:OK" \ "[username]:{username}".format(username=username) logger.info(exec_info) except Exception, e: error_msg = "[action]:register user" \ "[status]:FAIL" \ "[username]:{username}" \ "[Errorcode]:{e}".format(username=username, e=e) logger.error(error_msg) return jsonify({ 'status': '[FAIL]', 'msg': 'register fail, may be repeated because of username or password', 'data': { 'username': username, 'password': password } })
def go(self): """ used : go to server """ username = self.config['username'] password = self.config['password'] key_file = self.config['key_file'] paramiko_log = recursiveSearchFile(project_abdir, '*paramiko.log')[0] paramiko.util.log_to_file(paramiko_log) s = paramiko.SSHClient() s.load_system_host_keys() s.set_missing_host_key_policy(paramiko.AutoAddPolicy()) #go to server try: if key_file == '' and (username != '' and password != ''): s.connect(self.ip_domain, self.port, username, password) elif key_file != '': key = paramiko.RSAKey.from_private_key_file(key_file) s.connect(self.ip_domain, self.port, username, pkey=key) else: error_msg = "[action]:get paramikoconfig " \ "[status]:FAIL" \ "[Errorcode]:paramikoconfig error" \ "[ip_domain]:{ip_domain}" \ "[port]:{port}" \ "[username]:{username}" \ "[password]:{password}" \ "[key_file]:{key_file}".format(ip_domain=self.ip_domain, port=self.port, username=username, password=password, key_file=key_file) logger.error(error_msg) return 'paramikoconfig error' exec_info = "[action]:go to server" \ "[status]:OK" \ "[ip_domain]:{ip_domain}" \ "[port]:{port}".format(ip_domain=self.ip_domain, port=self.port) logger.info(exec_info) return s except Exception, e: error_msg = "[action]:go to server" \ "[status]:FAIL" \ "[Errorcode]:{e}" \ "[ip_domain]:{ip_domain}" \ "[port]:{port}".format(ip_domain=self.ip_domain, port=self.port, e=e) logger.info(error_msg)
def verify_user(username, password): '''API users verify decorator''' config = ConfigParser.ConfigParser() metaConfig = recursiveSearchFile(project_abdir, '*alertConfig.ini')[0] config.read(metaConfig) dbconfig = { 'host': config.get('META', 'host'), 'port': int(config.get('META', 'port')), 'user': config.get('META', 'user'), 'passwd': config.get('META', 'pwd'), 'db': config.get('META', 'db'), 'charset': 'utf8' } db = MySQL(dbconfig) sql = "select id,name,password_hash from users where name = '{username}'".format( username=username) db.query(sql) info = db.fetchOneRow() db.close() check_user = User(id=info[0], name=info[1], password_hash=info[2]) if not check_user or not check_user.verify_password(password): error_msg = "[action]:verify user" \ "[status]:FAIL" \ "[username]:{username}" \ "[verify status]:{status}".format(username=check_user.name, status=check_user.verify_password(password)) logger.error(error_msg) return False exec_info = "[action]:verify user" \ "[status]:OK" \ "[username]:{username}".format(username=username) logger.info(exec_info) return True
@module: moosefs mount @used: monitor the node of moosefs mount (not used now) """ from . import api from flask import request, jsonify from ..register_verify_user import auth from boird.utils.MyGO import MyMiko from boird.utils.MyTIMEOUT import timeout from boird.utils.MyFILE import project_abdir, recursiveSearchFile from boird.utils.MyLOG import MyLog logConfig = recursiveSearchFile(project_abdir, '*logConfig.ini')[0] mylog = MyLog(logConfig, 'mfsmount.py') logger = mylog.outputLog() __all__ = ['mfsmount'] __author__ = 'zhihao' @api.route('/mount', methods=['GET', 'POST']) @auth.login_required def mfsmount(): ''' monitor mfsmount exist or not, if return [0, "1\n"] is right if return [0, "0\n"] or hungon is wrong if API hungon ,please use time out function to deal it