Exemple #1
0
def task_index(request):
    proj_base_dir = get_dir("pro_path")
    inventory = get_ansible_config("inventory")
    default_check_HostsFile = inventory.split('/')[-1]
    temp_name = "sktask/sktask_header.html"
    all_HostsFile = get_hostsFile(ansible_dir)
    all_ansible_hosts_dic, list_key, all_group_key = get_AnsibleHostsDic(
        inventory)
    all_ansible_hosts_ip = get_IpList(inventory)
    all_ansible_hosts = all_group_key + all_ansible_hosts_ip
    all_projects = project.objects.filter(online_status=1)
    return render_to_response('sktask/task_index.html', locals(),
                              RequestContext(request))
Exemple #2
0
def job_detail(request, ids):
    proj_base_dir = get_dir("pro_path")
    obj = {}
    obj_job = get_object(job, id=ids)
    obj_playbook = obj_job.playbook
    obj_project = get_object(project, name=obj_job.project)
    obj_pro_path = obj_project.path
    pkfile = proj_base_dir + obj_pro_path + "/" + obj_playbook

    obj["name"] = obj_playbook
    with open(pkfile, 'r') as f:
        obj["content"] = f.read()

    return render_to_response('sktask/job_detail.html', locals(),
                              RequestContext(request))
Exemple #3
0
 def _wrapped_view(request, *args, **kwargs):
     iToken = get_dir('token')
     if request.POST:
         pToken = request.POST.get('token')
         if iToken == pToken:
             return view_func(request, *args, **kwargs)
         else:
             message = "forbidden your token error!!"
             print message
             return HttpResponse(status=403)
     if request.GET:
         pToken = request.GET['token']
         if iToken == pToken:
             return view_func(request, *args, **kwargs)
         else:
             message = "forbidden your token error!!"
             print message
             return HttpResponse(status=403)
     return HttpResponse(status=403)
Exemple #4
0
from models import job, extravars, project
import os
from skconfig.views import get_dir
from django.contrib.auth.decorators import login_required
from skaccounts.permission import permission_verify
import logging
from lib.log import log
from lib.setup import get_playbook, get_roles
from .models import history
from .forms import Job_form
from django.shortcuts import render_to_response, RequestContext
from skcmdb.api import get_object
import json
# var info

proj_base_dir = get_dir("pro_path")


@login_required()
@permission_verify()
def job_index(request):
    temp_name = "sktask/sktask_header.html"
    alljob = job.objects.all()
    return render_to_response('sktask/job_index.html', locals(),
                              RequestContext(request))


@login_required()
@permission_verify()
def job_add(request):
    temp_name = "sktask/sktask_header.html"
Exemple #5
0
'''
Created on 2020年6月17日

@author: admin
'''
#! /usr/bin/env python
# -*- coding: utf-8 -*-

from skconfig.views import get_dir
from django.contrib.auth.decorators import login_required
from skaccounts.permission import permission_verify
from lib.setup import get_AnsibleHostsDic, get_hostsFile
from django.shortcuts import render

ansible_dir = get_dir("a_path")


@login_required()
@permission_verify()
def index(request):
    temp_name = "sktask/setup-header.html"
    list_hostsFile = get_hostsFile(ansible_dir)

    dic_dic_groups = {}
    dic_list_key = {}
    for h in list_hostsFile:

        all_ansible_groups, list_key, list_key_gp = get_AnsibleHostsDic(
            ansible_dir + h)
        dic_dic_groups[h] = all_ansible_groups
        dic_list_key[h] = list_key
Exemple #6
0
def task_submit(request):
    proj_base_dir = get_dir("pro_path")

    ret = []
    temp_name = "sktask/sktask_header.html"
    h_obj = ""
    extra_vars = ""
    if request.method == 'POST':
        user = request.user
        if request.META.has_key('HTTP_X_FORWARDED_FOR'):
            ip = request.META['HTTP_X_FORWARDED_FOR']
        else:
            ip = request.META['REMOTE_ADDR']

        if request.POST.get('ansible_hosts'):
            h_obj = request.POST.get('ansible_hosts')
            extra_vars = "hosts=%s" % h_obj
        if request.POST.get('iCheck_extravars'):
            e_obj = request.POST.get('iCheck_extravars')
            extra_vars = extra_vars + " " + e_obj

        if request.POST.get('iCheck_HostsFile'):
            f_obj = request.POST.get('iCheck_HostsFile')

            f_obj = ansible_dir + f_obj

        p_obj = request.POST.get('iCheck_project')
        j_obj = request.POST.get('iCheck_job')

    playbook_dir = proj_base_dir + p_obj
    job_obj = playbook_dir + "/" + j_obj
    print job_obj
    if j_obj.endswith('.yml'):
        #         cmd = "ansible-playbook"+ " " + "-i" + " " + " " + f_obj + playbook_dir +"/"+ j_obj + " " + "-e '%s'" % extra_vars
        cmd = "ansible-playbook %s -i %s -e '%s'" % (job_obj, f_obj,
                                                     extra_vars)
        print cmd

    elif j_obj.endswith('.ans'):
        #         cmd = "bash"+" " + playbook_dir +"/"+ j_obj + " " + h_obj
        hosts_vars = "%s -i %s" % (h_obj, f_obj)
        cmd = "bash %s '%s'" % (job_obj, hosts_vars)

    else:
        ret.append(
            "您定义的job任务脚本不符合规范,playbook脚本名称必须以yml结尾,shell封装的ansible命令任务脚本ans结尾")

        return render(request, 'sktask/task_result.html', locals())

    try:
        time_start = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
        pcmd = Popen(cmd, stdout=PIPE, stderr=PIPE, shell=True)

        data = pcmd.communicate()

        #         ret.append(data)
        ret = data
        print ret

    except:
        exinfo = sys.exc_info()
        logging.error(exinfo)
    retcode = pcmd.poll()
    if retcode == 0:
        retcode = "success"
    else:
        retcode = "failed"
    dic_his = {
        'login_user': user,
        'src_ip': ip,
        'cmd_object': h_obj,
        'cmd': cmd,
        'cmd_result': retcode,
        'cmd_detail': ret[0],
        'time_task_start': time_start,
        #                  'time_task_finished':time_finished,
        'task_name': j_obj
    }
    history.objects.create(**dic_his)
    return render(request, 'sktask/task_result.html', locals())
Exemple #7
0
import logging
from lib.log import log
from lib.setup import get_playbook, get_roles, get_AnsibleHostsDic, get_IpList, get_hostsFile
from .models import history
from .forms import Project_form
from django.shortcuts import render_to_response, RequestContext
from skcmdb.api import get_object
import json
import logging
from billiard.util import INFO
import sys
from .models import history
from datetime import datetime
from sktask.models import ONLINE_STATUS

level = get_dir("log_level")
log_path = get_dir("log_path")
log("sktask.log", level, log_path)

ansible_dir = get_dir("a_path")


@login_required()
@permission_verify()
def task_index(request):
    proj_base_dir = get_dir("pro_path")
    inventory = get_ansible_config("inventory")
    default_check_HostsFile = inventory.split('/')[-1]
    temp_name = "sktask/sktask_header.html"
    all_HostsFile = get_hostsFile(ansible_dir)
    all_ansible_hosts_dic, list_key, all_group_key = get_AnsibleHostsDic(
Exemple #8
0
from lib.file import new_file

from .forms import WorkOrder_form
from django.shortcuts import render
from django.template import RequestContext
from lib.com import get_object
import json
import logging
from billiard.util import INFO
import sys
from datetime import datetime

from lib.lib_config import get_config_var


level = get_dir("log_level")
log_path = get_dir("log_path")
log("skworkorders.log", level, log_path)
git_path = get_dir("git_path")
proj_base_dir = get_dir("pro_path")


@login_required()
@permission_verify()
def WorkOrder_index(request):
    temp_name = "skworkorders/skworkorders-header.html"    
    tpl_all = WorkOrder.objects.filter(template_enable = False)
    
    return render(request,'skworkorders/WorkOrder_index.html', locals())

@login_required()