Exemplo n.º 1
0
def github_hook():
    data = json.loads(request.form.get('payload', ''))
    # make sure this came from unisubs
    repo = data.get('repository', {})
    if repo.get('name') == 'unisubs' and \
        repo.get('url') == 'https://github.com/pculture/unisubs':
        # get the branch
        branch = data.get('ref').split('refs/heads/')[-1]
        db.log({
            'ip': request.remote_addr,
            'user': '******',
            'command': 'Hook: deploy for {0}'.format(branch),
        })
        # spawn process to not delay the response to github
        p = Process(target=deploy_demo, args=(branch,))
        p.start()
    return 'kthxbye'
Exemplo n.º 2
0
def github_hook():
    data = json.loads(request.form.get('payload', ''))
    # make sure this came from unisubs
    repo = data.get('repository', {})
    if repo.get('name') == 'unisubs' and \
        repo.get('url') == 'https://github.com/pculture/unisubs':
        # get the branch
        branch = data.get('ref').split('refs/heads/')[-1]
        db.log({
            'ip': request.remote_addr,
            'user': '******',
            'command': 'Hook: deploy for {0}'.format(branch),
        })
        # spawn process to not delay the response to github
        p = Process(target=deploy_demo, args=(branch, ))
        p.start()
    return 'kthxbye'
Exemplo n.º 3
0
def index():
    workflows = config.get_workflows()
    job = None
    result_key = None
    workflow_id = None
    workflows = utils.sorted_dict(workflows, 'name')
    if request.method == 'POST':
        form = request.form
        workflow_id = form.get('workflow_id')
        if workflow_id:
            workflow = [x for x in workflows
                        if x.get('name') == workflow_id][0]
            username = session.get('user', {}).get('username')
            db.log({
                'ip': request.remote_addr,
                'user': username,
                'command': 'Workflow: {0}'.format(workflow_id),
            })
            args = workflow.get('arguments')
            # substitute args
            task = workflow.get('command')
            if args:
                for a in args:
                    arg_name = a.get('name')
                    arg_val = form.get(arg_name, None)
                    task = task.replace('<{0}>'.format(arg_name),
                                        form.get(arg_name))
            # add proxy_user to get launchpad user
            task = task.replace('<proxy_user>', username)
            # generate result_key
            result_key = str(int(time.time()))
            # run command
            job = queue_task(ops.run_fabric_task, task, result_key,
                             workflow.get('notify'))
    ctx = {
        'workflows': workflows,
        'job': job,
        'result_key': result_key,
    }
    return render_template('admin/index.html', **ctx)
Exemplo n.º 4
0
def console():
    task = ''
    job = None
    result_key = None
    if request.method == 'POST':
        form = request.form
        task = form.get('task')
        if task:
            result_key = str(int(time.time()))
            db.log({
                'ip': request.remote_addr,
                'user': session.get('user', {}).get('username'),
                'command': task
            })
            # run command
            job = queue_task(ops.run_fabric_task, task, result_key, False)
    ctx = {
        'task': task,
        'job': job,
        'result_key': result_key,
    }
    return render_template('admin/console.html', **ctx)
Exemplo n.º 5
0
def index():
    workflows = config.get_workflows()
    job = None
    result_key = None
    workflow_id = None
    workflows = utils.sorted_dict(workflows, 'name')
    if request.method == 'POST':
        form = request.form
        workflow_id = form.get('workflow_id')
        if workflow_id:
            workflow = [x for x in workflows if x.get('name') == workflow_id][0]
            username = session.get('user', {}).get('username')
            db.log({
                'ip': request.remote_addr,
                'user': username,
                'command': 'Workflow: {0}'.format(workflow_id),
            })
            args = workflow.get('arguments')
            # substitute args
            task = workflow.get('command')
            if args:
                for a in args:
                    arg_name = a.get('name')
                    arg_val = form.get(arg_name, None)
                    task = task.replace('<{0}>'.format(arg_name),
                        form.get(arg_name))
            # add proxy_user to get launchpad user
            task = task.replace('<proxy_user>', username)
            # generate result_key
            result_key = str(int(time.time()))
            # run command
            job = queue_task(ops.run_fabric_task, task, result_key,
                workflow.get('notify'))
    ctx = {
        'workflows': workflows,
        'job': job,
        'result_key': result_key,
    }
    return render_template('admin/index.html', **ctx)
Exemplo n.º 6
0
def console():
    task = ''
    job = None
    result_key = None
    if request.method == 'POST':
        form = request.form
        task = form.get('task')
        if task:
            result_key = str(int(time.time()))
            db.log({
                'ip': request.remote_addr,
                'user': session.get('user', {}).get('username'),
                'command': task
            })
            # run command
            job = queue_task(ops.run_fabric_task, task, result_key, False)
    ctx = {
        'task': task,
        'job': job,
        'result_key': result_key,
    }
    return render_template('admin/console.html', **ctx)