Exemple #1
0
def r_unbound(ssh_key_id):

    args_rules = [
        Rules.SSH_KEY_ID_EXT.value,
    ]

    try:
        ji.Check.previewing(args_rules, {'ssh_key_id': ssh_key_id})

        rows, _ = SSHKeyGuestMapping.get_by_filter(
            filter_str=':'.join(['ssh_key_id', 'eq', ssh_key_id]))
        guests_uuid = list()
        for row in rows:
            guests_uuid.append(row['guest_uuid'])

        if guests_uuid.__len__() == 0:
            guests_uuid.append('_')

        request.__setattr__(
            'args',
            ImmutableMultiDict([
                ('filter',
                 ':'.join(['uuid', 'notin', ','.join(guests_uuid)]) + ';' +
                 ':'.join(['status', 'eq',
                           str(GuestState.running.value)])),
                ('page_size', 10000)
            ]))

        return guest_base.get_by_filter()
    except ji.PreviewingError, e:
        return json.loads(e.message)
 def wraps(*args, **kwargs):
     if request.headers.has_key('app-token'):
         token = request.headers['app-token']
         payload = jwt.decode(token, 'feed_engine', algorithm='HS256')
         app = AppRepository().get_by_slug(App, payload['app_name'])
         if app:
             request.__setattr__('app', app.transform())
             return func(*args, **kwargs)
     raise FoodException('Unauthorized request', 401)
Exemple #3
0
 def wraps(*args, **kwargs):
     if request.headers.has_key('access-token'):
         repo = CustomerTokenRepository()
         token = request.headers['access-token']
         tokenObj = repo.check_valid_token(token)
         if hasattr(tokenObj, 'token'):
             request.__setattr__('customer',
                                 tokenObj.transform()['customer'])
             return func(*args, **kwargs)
     raise WalletException('Unauthorized request', 401)
Exemple #4
0
 def wrapper(*args, **kw):
     info = get_session(request.cookies.get("session_key", ""))
     if info:
         request.__setattr__("user", info)
         return func(*args, **kw)
     else:
         return json.dumps({
             "status": 302,
             "message": "请登录",
             "url": url_for("index"),
         })
Exemple #5
0
 def before(self):
     if request.headers.has_key("TRACE-ID"):
         request.traceId = request.headers["TRACE-ID"]
     else:
         request.traceId = ""
     # 0. 判断header是否含有 batch-execute
     # MAX_API.resources # 1. 获取路径对应的方法
     # 2. 将payload写为数组里的单个元素
     # 3. for 调用
     # 4. 结果合并
     # 5. exit 返回结果, 不允许请求进行下一步动作
     request.__setattr__('access_time', int(time.time() * 1000))
Exemple #6
0
def r_unbind(ssh_key_id, uuids):

    args_rules = [Rules.SSH_KEY_ID_EXT.value, Rules.UUIDS.value]

    try:
        ji.Check.previewing(args_rules, {
            'ssh_key_id': ssh_key_id,
            'uuids': uuids
        })

        ret = dict()
        ret['state'] = ji.Common.exchange_state(20000)

        # 获取已经和该 ssh_key 绑定过的映射集合,从中获取映射 id,用于解绑操作
        rows, _ = SSHKeyGuestMapping.get_by_filter(
            filter_str=':'.join(['ssh_key_id', 'eq', ssh_key_id]))

        guests_uuid = uuids.split(',')

        ssh_key_guest_mapping = SSHKeyGuestMapping()
        for row in rows:
            # 解除已经绑定过的 guest
            if row['guest_uuid'] in guests_uuid:
                ssh_key_guest_mapping.id = row['id']
                ssh_key_guest_mapping.delete()

                update_ssh_key(uuid=row['guest_uuid'])

        # 返回执行结果
        rows, _ = SSHKeyGuestMapping.get_by_filter(
            filter_str=':'.join(['ssh_key_id', 'eq', ssh_key_id]))
        guests_uuid = list()
        for row in rows:
            guests_uuid.append(row['guest_uuid'])

        if guests_uuid.__len__() == 0:
            guests_uuid.append('_')

        request.__setattr__(
            'args',
            ImmutableMultiDict([
                ('filter', ':'.join(['uuid', 'in', ','.join(guests_uuid)])),
                ('page_size', 10000)
            ]))

        return guest_base.get_by_filter()
    except ji.PreviewingError, e:
        return json.loads(e.message)
Exemple #7
0
def index():

    if request.method == 'GET':
        return render_template('index.html')

    elif request.method == 'POST':

        if 'file' in request.files:
            f = request.files['file']
            f.save(utils.secure_filename(f.filename))
            # session['file'] = f.filename
            # request.args['file'] = f.filename
            session.__setattr__('file',f.filename)
            request.__setattr__('file',f.filename)
            return render_template('view_parse.html')
        else:
            # return app.route('/commands',methods=['GET'])
            # return 'Here'
            # return redirect(url_for('get_command_output'))
            return redirect(url_for('process_commands'))

    else:
        return app.route('/spec')
Exemple #8
0
def cookie(name=None):
    name = request.cookies.get('username')
    name = request.form['username']
    app.logger.debug('name:',name)
    request.__setattr__('name',name)
    return render_template('hello.html',name = name)
Exemple #9
0
def r_bind(ssh_key_id, uuids):

    args_rules = [Rules.SSH_KEY_ID_EXT.value, Rules.UUIDS.value]

    try:
        ji.Check.previewing(args_rules, {
            'ssh_key_id': ssh_key_id,
            'uuids': uuids
        })

        ret = dict()
        ret['state'] = ji.Common.exchange_state(20000)

        ssh_key = SSHKey()
        ssh_key.id = ssh_key_id

        # 判断 ssh_key id 为 ssh_key_id 的对象是否存在
        if not ssh_key.exist():
            ret['state'] = ji.Common.exchange_state(40401)
            ret['state']['sub']['zh-cn'] = ''.join(
                [ret['state']['sub']['zh-cn'], ': ssh_key_id: ', ssh_key_id])
            return ret

        # 获取已经和该 ssh_key 绑定过的 guest uuid 集合,用于判断是否已经绑定过该 ssh_key,避免重复绑定
        rows, _ = SSHKeyGuestMapping.get_by_filter(
            filter_str=':'.join(['ssh_key_id', 'eq', ssh_key_id]))

        guests_uuid = list()
        for row in rows:
            guests_uuid.append(row['guest_uuid'])

        ssh_key_guest_mapping = SSHKeyGuestMapping()
        for uuid in uuids.split(','):
            # 如果已经绑定过,则忽略
            if uuid in guests_uuid:
                continue

            ssh_key_guest_mapping.ssh_key_id = ssh_key_id
            ssh_key_guest_mapping.guest_uuid = uuid
            ssh_key_guest_mapping.create()

            update_ssh_key(uuid=uuid)

        # 返回执行结果
        rows, _ = SSHKeyGuestMapping.get_by_filter(
            filter_str=':'.join(['ssh_key_id', 'eq', ssh_key_id]))
        guests_uuid = list()
        for row in rows:
            guests_uuid.append(row['guest_uuid'])

        if guests_uuid.__len__() == 0:
            guests_uuid.append('_')

        request.__setattr__(
            'args',
            ImmutableMultiDict([
                ('filter', ':'.join(['uuid', 'in', ','.join(guests_uuid)])),
                ('page_size', 10000)
            ]))

        return guest_base.get_by_filter()
    except ji.PreviewingError, e:
        return json.loads(e.message)
Exemple #10
0
def cookie(name=None):
    name = request.cookies.get("username")
    name = request.form["username"]
    app.logger.debug("name:", name)
    request.__setattr__("name", name)
    return render_template("hello.html", name=name)