Ejemplo n.º 1
0
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, '*metaConfig.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
            }
        })
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
def verify_user(username, password):
    '''API users verify decorator'''
    config = ConfigParser.ConfigParser()
    metaConfig = recursiveSearchFile(project_abdir, '*metaConfig.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
Ejemplo n.º 4
0
"""
Created on 2017-8-29


@module: storagebin_info
@used: get storage bin info
"""

from . import api
from flask import request, jsonify, Response

import json

from botasky.utils.MyFILE import project_abdir, recursiveSearchFile
from botasky.utils.MyLOG import MyLog
logConfig = recursiveSearchFile(project_abdir, '*logConfig.ini')[0]
mylog = MyLog(logConfig, 'storagebin_info.py')
logger = mylog.outputLog()

from botasky.utils.MyCONN import MySQL

import ConfigParser
config = ConfigParser.ConfigParser()
colConfig = recursiveSearchFile(project_abdir, '*metaConfig.ini')[0]
config.read(colConfig)

__all__ = ['storagebin']
__author__ = 'zhihao'


@api.route('/storagebin', methods=['GET', 'POST'])