Beispiel #1
0
def script_edit(request):
    user = request.user
    sdicts = {}
    code = 500
    
    try:
        script_id = request.POST.get('script_id')
        script_name = request.POST.get('script_name')
        script_describe = request.POST.get('script_describe')
        
        script = _script.get_script_by_params(id=script_id)
        scripts = _script.get_scripts_by_params(name=script_name,create_user=user,is_delete=False).exclude(id=script.id)
        if scripts:
            return HttpResponse(json.dumps({
                "status":500,
                "msg": u"作业名称已存在"
            }))
        
        script.name = script_name
        script.describe = script_describe
        script.update_user = user
        script.save()
        script_type_display = script.get_script_type_display()
        version_list = _script.get_versions_by_params(script=script,is_delete=False)
    
        code = 200
    except Exception,e:
        code = 500
        msg = u'保存脚本名称失败'
Beispiel #2
0
def script_edit(request):
    user = request.user
    sdicts = {}
    code = 500

    try:
        script_id = request.POST.get('script_id')
        script_name = request.POST.get('script_name')
        script_describe = request.POST.get('script_describe')

        script = _script.get_script_by_params(id=script_id)
        scripts = _script.get_scripts_by_params(
            name=script_name, create_user=user,
            is_delete=False).exclude(id=script.id)
        if scripts:
            return HttpResponse(json.dumps({"status": 500, "msg": u"作业名称已存在"}))

        script.name = script_name
        script.describe = script_describe
        script.update_user = user
        script.save()
        script_type_display = script.get_script_type_display()
        version_list = _script.get_versions_by_params(script=script,
                                                      is_delete=False)

        code = 200
    except Exception, e:
        code = 500
        msg = u'保存脚本名称失败'
Beispiel #3
0
def get_script_versions(request, script_id):
    """
        get all versions for given script.
    """
    user = request.user
    status = 500
    data = {}
    try:
        script = _script.get_script_by_params(pk=script_id,
                                              is_delete=False,
                                              is_once=False)
        if not script:
            msg = u'未找到该id对应脚本'
        else:
            versions = _script.get_versions_by_params(script=script,
                                                      is_delete=False)
            vers_info = {}
            [vers_info.update({ver.id: ver.name}) for ver in versions]
            msg = u'操作成功'
            status = 200
            data.update({"versions": vers_info})
    except Exception, e:
        msg = u"未知错误"
        error = traceback.format_exc()
        print error
        logger.error(error)
Beispiel #4
0
def script_add(request):
    user = request.user
    sdicts = {}
    code = 500
    
    if request.method == 'POST':
        try:
            check_id = request.POST.get('check_id')
            script_name = request.POST.get('new_script_name')
            script_describe = request.POST.get('new_script_describe')
            script_type = request.POST.get('new_script_type')
            file_content = request.POST.get('new_file_content')
        
            script = _script.get_script_by_params(name=script_name,create_user=user,is_delete=False)
            if script:
                return HttpResponse(json.dumps({
                    "status":500,
                    "msg": u"作业名称已存在"
                }))
        
            script = _script.create_script_by_params(name=script_name,create_user=user)
            script.script_type = script_type
            script.update_user = user
            script.describe = script_describe
            script.save()
            script_type_display = enum_script.SCIPT_TYPE_CHOICES[int(script.script_type)-1][1]
            version_list = _script.get_versions_by_params(script=script,is_delete=False)
            
            version_name = '%s_%s'%(check_id,user.username)
            version = _script.get_or_create_version_by_params(script=script,name=version_name)[0]
    
            file_doc_num = version.id % 100
            file_doc_path = os.path.join(MEDIA_ROOT,'scripts','%s'%file_doc_num)
            if not os.path.exists(file_doc_path):
                os.mkdir(file_doc_path)
            suffix = enum_script.SCIPT_TYPE_DICT.get(int(script.script_type))
            filename = u'%s.%s'%(version_name, suffix)
            file_path = os.path.join(file_doc_path,filename)
    
            f = open(file_path, 'wb')
            try:
                f.write(file_content)
            except Exception,e:
                print e
            finally:
                f.close()
                
            md5sum = calc_md5(file_path)
            fileserver_save_file(file_path,user.username,md5sum)
    
            version.sfile = u'%s/%s'%(file_doc_num, filename)
            version.save()
        
            code = 200
        except Exception,e:
            code = 500
            msg = u'保存脚本失败'
Beispiel #5
0
def script_view(request):
    user = request.user
    sdicts = {}
    code = 500
    
    try:
        script_id = request.POST.get('script_id')
        script = _script.get_script_by_params(id=script_id)
        script_type_display = script.get_script_type_display()
        version_list = _script.get_versions_by_params(script=script,is_delete=False)
        code = 200
    except Exception,e:
        code = 500
Beispiel #6
0
def script_view(request):
    user = request.user
    sdicts = {}
    code = 500

    try:
        script_id = request.POST.get('script_id')
        script = _script.get_script_by_params(id=script_id)
        script_type_display = script.get_script_type_display()
        version_list = _script.get_versions_by_params(script=script,
                                                      is_delete=False)
        code = 200
    except Exception, e:
        code = 500
Beispiel #7
0
def script_describe_edit(request):
    user = request.user
    sdicts = {}
    code = 500
    
    try:
        script_id = request.POST.get('script_id')
        script_describe = request.POST.get('script_describe')
    
        script = _script.get_script_by_params(id=script_id)
        script.describe = script_describe
        script.update_user = user
        script.save()
        script_type_display = script.get_script_type_display()
        version_list = _script.get_versions_by_params(script=script,is_delete=False)
    
        code = 200
    except Exception,e:
        code = 500
        msg = u'保存脚本描述失败'
Beispiel #8
0
def version_remarks_save(request):
    '''
        version remarks save
    '''
    sdicts = {}
    user = request.user
    version_id = request.GET.get('version_id',0)
    version_remarks = request.GET.get('version_remarks','')
    code = 500
    try:
        version = _script.get_version_by_params(id=version_id)
        version.remarks = version_remarks
        version.save()
        
        script = version.script
        script_type_display = script.get_script_type_display()
        version_list = _script.get_versions_by_params(script=script,is_delete=False)
        code = 200
    except Exception,e:
        code = 500
Beispiel #9
0
def script_delete(request):
    '''
        delete script
    '''
    sdicts = {}
    script_id = request.POST.get('script_id', 0)
    user = request.user
    script = _script.get_script_by_params(id=script_id)
    if script:
        versions = _script.get_versions_by_params(script=script,
                                                  is_delete=False)
        #        jobStepScripts = _job.get_jobStepScripts_by_params(step__job__is_delete=False,version__in=versions)
        templateStepScripts = _template.get_templateStepScripts_by_params(
            step__template__is_delete=False, version__in=versions)
        #        if jobStepScripts:
        #            sdicts = {'result':0}
        #            sdicts['showMsg'] = _(u"删除失败: 当前脚本存在关联的作业实例")
        #        elif templateStepScripts:
        #            sdicts = {'result':0}
        #            sdicts['showMsg'] = _(u"删除失败: 当前脚本存在关联的作业模板")
        if templateStepScripts:
            sdicts = {'result': 0}
            sdicts['showMsg'] = _(u"删除失败: 当前脚本存在关联的作业实例")
        else:
            script.is_delete = True
            script.update_user = user
            script.save()
            sdicts['result'] = 1
            sdicts['showMsg'] = _(u"删除成功")
    else:
        sdicts = {'result': 0}
        sdicts['showMsg'] = _(u"删除失败")


#    table_fields = [u'脚本名称', u'脚本描述', u'创建人', u'创建时间', u'最后修改人', u'最后修改时间', u'操作']
    table_fields = [u'脚本名称', u'脚本描述', u'创建人', u'最后修改人', u'已授权用户', u'操作']
    ajax_url = u'/script_manage/list/'
    template_file = "script_manage/contentDiv.html"
    html = render_to_string(template_file, locals())
    sdicts['html'] = html
    return HttpResponse(json.dumps(sdicts, cls=LazyEncoder))
Beispiel #10
0
def version_remarks_save(request):
    '''
        version remarks save
    '''
    sdicts = {}
    user = request.user
    version_id = request.GET.get('version_id', 0)
    version_remarks = request.GET.get('version_remarks', '')
    code = 500
    try:
        version = _script.get_version_by_params(id=version_id)
        version.remarks = version_remarks
        version.save()

        script = version.script
        script_type_display = script.get_script_type_display()
        version_list = _script.get_versions_by_params(script=script,
                                                      is_delete=False)
        code = 200
    except Exception, e:
        code = 500
Beispiel #11
0
def script_describe_edit(request):
    user = request.user
    sdicts = {}
    code = 500

    try:
        script_id = request.POST.get('script_id')
        script_describe = request.POST.get('script_describe')

        script = _script.get_script_by_params(id=script_id)
        script.describe = script_describe
        script.update_user = user
        script.save()
        script_type_display = script.get_script_type_display()
        version_list = _script.get_versions_by_params(script=script,
                                                      is_delete=False)

        code = 200
    except Exception, e:
        code = 500
        msg = u'保存脚本描述失败'
Beispiel #12
0
def version_delete(request):
    '''
        delete version
    '''
    sdicts = {}
    version_id = request.POST.get('version_id', 0)
    user = request.user
    version = _script.get_version_by_params(id=version_id)
    if version:
        #        jobStepScripts = _job.get_jobStepScripts_by_params(step__job__is_delete=False,version=version)
        templateStepScripts = _template.get_templateStepScripts_by_params(
            step__template__is_delete=False, version=version)
        #        if jobStepScripts:
        #            sdicts = {'result':0}
        #            sdicts['showMsg'] = _(u"删除失败: 当前版本存在关联的作业实例")
        #        elif templateStepScripts:
        #            sdicts = {'result':0}
        #            sdicts['showMsg'] = _(u"删除失败: 当前版本存在关联的作业模板")
        if templateStepScripts:
            sdicts = {'result': 0}
            sdicts['showMsg'] = _(u"删除失败: 当前版本存在关联的作业实例")
        else:
            version.is_delete = True
            version.save()
            sdicts['result'] = 1
            sdicts['showMsg'] = _(u"删除成功")

        script = version.script
        script_type_display = script.get_script_type_display()
        version_list = _script.get_versions_by_params(script=script,
                                                      is_delete=False)
        sdicts['script_id'] = script.id
    else:
        sdicts = {'result': 0}
        sdicts['showMsg'] = _(u"删除失败")

    template_file = "script_manage/script_view.html"
    html = render_to_string(template_file, locals())
    sdicts['html'] = html
    return HttpResponse(json.dumps(sdicts, cls=LazyEncoder))
Beispiel #13
0
def script_delete(request):
    '''
        delete script
    '''
    sdicts = {}
    script_id = request.POST.get('script_id',0)
    user = request.user
    script = _script.get_script_by_params(id=script_id)
    if script:
        versions = _script.get_versions_by_params(script=script,is_delete=False)
#        jobStepScripts = _job.get_jobStepScripts_by_params(step__job__is_delete=False,version__in=versions)
        templateStepScripts = _template.get_templateStepScripts_by_params(step__template__is_delete=False,version__in=versions)
#        if jobStepScripts:
#            sdicts = {'result':0}
#            sdicts['showMsg'] = _(u"删除失败: 当前脚本存在关联的作业实例")
#        elif templateStepScripts:
#            sdicts = {'result':0}
#            sdicts['showMsg'] = _(u"删除失败: 当前脚本存在关联的作业模板")
        if templateStepScripts:
            sdicts = {'result':0}
            sdicts['showMsg'] = _(u"删除失败: 当前脚本存在关联的作业实例")
        else:
            script.is_delete = True
            script.update_user = user
            script.save()
            sdicts['result'] = 1
            sdicts['showMsg'] = _(u"删除成功")
    else:
        sdicts = {'result':0}
        sdicts['showMsg'] = _(u"删除失败")
    
#    table_fields = [u'脚本名称', u'脚本描述', u'创建人', u'创建时间', u'最后修改人', u'最后修改时间', u'操作']
    table_fields = [u'脚本名称', u'脚本描述', u'创建人', u'最后修改人', u'已授权用户', u'操作']
    ajax_url = u'/script_manage/list/' 
    template_file = "script_manage/contentDiv.html"
    html = render_to_string(template_file, locals())
    sdicts['html'] = html
    return HttpResponse(json.dumps(sdicts, cls=LazyEncoder))
Beispiel #14
0
def version_delete(request):
    '''
        delete version
    '''
    sdicts = {}
    version_id = request.POST.get('version_id',0)
    user = request.user
    version = _script.get_version_by_params(id=version_id)
    if version:
#        jobStepScripts = _job.get_jobStepScripts_by_params(step__job__is_delete=False,version=version)
        templateStepScripts = _template.get_templateStepScripts_by_params(step__template__is_delete=False,version=version)
#        if jobStepScripts:
#            sdicts = {'result':0}
#            sdicts['showMsg'] = _(u"删除失败: 当前版本存在关联的作业实例")
#        elif templateStepScripts:
#            sdicts = {'result':0}
#            sdicts['showMsg'] = _(u"删除失败: 当前版本存在关联的作业模板")
        if templateStepScripts:
            sdicts = {'result':0}
            sdicts['showMsg'] = _(u"删除失败: 当前版本存在关联的作业实例")
        else:
            version.is_delete = True
            version.save()
            sdicts['result'] = 1
            sdicts['showMsg'] = _(u"删除成功")
        
        script = version.script
        script_type_display = script.get_script_type_display()
        version_list = _script.get_versions_by_params(script=script,is_delete=False)
        sdicts['script_id'] = script.id
    else:
        sdicts = {'result':0}
        sdicts['showMsg'] = _(u"删除失败")
    
    template_file = "script_manage/script_view.html"
    html = render_to_string(template_file, locals())
    sdicts['html'] = html
    return HttpResponse(json.dumps(sdicts, cls=LazyEncoder))
Beispiel #15
0
def get_script_versions(request,script_id):
    """
        get all versions for given script.
    """
    user = request.user
    status = 500
    data = {}
    try:
        script = _script.get_script_by_params(pk=script_id,is_delete=False,is_once=False)
        if not script:
            msg = u'未找到该id对应脚本'
        else:
            versions = _script.get_versions_by_params(script=script,is_delete=False)
            vers_info = {}
            [vers_info.update({ver.id:ver.name}) for ver in versions]
            msg = u'操作成功'
            status = 200
            data.update({"versions":vers_info})
    except Exception,e:
        msg = u"未知错误"
        error = traceback.format_exc()
        print error
        logger.error(error)
Beispiel #16
0
def script_add(request):
    user = request.user
    sdicts = {}
    code = 500

    if request.method == 'POST':
        try:
            check_id = request.POST.get('check_id')
            script_name = request.POST.get('new_script_name')
            script_describe = request.POST.get('new_script_describe')
            script_type = request.POST.get('new_script_type')
            file_content = request.POST.get('new_file_content')

            script = _script.get_script_by_params(name=script_name,
                                                  create_user=user,
                                                  is_delete=False)
            if script:
                return HttpResponse(
                    json.dumps({
                        "status": 500,
                        "msg": u"作业名称已存在"
                    }))

            script = _script.create_script_by_params(name=script_name,
                                                     create_user=user)
            script.script_type = script_type
            script.update_user = user
            script.describe = script_describe
            script.save()
            script_type_display = enum_script.SCIPT_TYPE_CHOICES[
                int(script.script_type) - 1][1]
            version_list = _script.get_versions_by_params(script=script,
                                                          is_delete=False)

            version_name = '%s_%s' % (check_id, user.username)
            version = _script.get_or_create_version_by_params(
                script=script, name=version_name)[0]

            file_doc_num = version.id % 100
            file_doc_path = os.path.join(MEDIA_ROOT, 'scripts',
                                         '%s' % file_doc_num)
            if not os.path.exists(file_doc_path):
                os.mkdir(file_doc_path)
            suffix = enum_script.SCIPT_TYPE_DICT.get(int(script.script_type))
            filename = u'%s.%s' % (version_name, suffix)
            file_path = os.path.join(file_doc_path, filename)

            f = open(file_path, 'wb')
            try:
                f.write(file_content)
            except Exception, e:
                print e
            finally:
                f.close()

            md5sum = calc_md5(file_path)
            fileserver_save_file(file_path, user.username, md5sum)

            version.sfile = u'%s/%s' % (file_doc_num, filename)
            version.save()

            code = 200
        except Exception, e:
            code = 500
            msg = u'保存脚本失败'
Beispiel #17
0
            f = open(file_path, 'wb')
            try:
                f.write(file_content)
            except Exception, e:
                print e
            finally:
                f.close()

            md5sum = calc_md5(file_path)
            fileserver_save_file(file_path, user.username, md5sum)

            version.sfile = u'%s/%s' % (file_doc_num, filename)
            version.save()

            script_type_display = script.get_script_type_display()
            version_list = _script.get_versions_by_params(script=script,
                                                          is_delete=False)

            code = 200
        else:
            code = 500

        template_file = "script_manage/script_view.html"
        html = render_to_string(template_file, locals())
        sdicts['status'] = code
        sdicts['script_id'] = script.id
        sdicts['html'] = html
        return HttpResponse(json.dumps(sdicts))
    else:
        version_id = request.GET.get('version_id', 0)
        version = _script.get_version_by_params(id=version_id)
        if version:
Beispiel #18
0
def template_step_edit_v2(request, template_step_id):
    """
        edit template step.
    """
    req = request.POST
    user = request.user
    status = 500
    data = {}
    msg = ""
    try:
        step = _template.get_templateStep_by_params(id=template_step_id)
        if not step:
            msg = u"步骤不存在"
            raise Exception, msg
        # if step.template.create_user!=user:
        #     msg = u"您不是该步骤的所有者"
        #     raise Exception,msg

        type_value = step.step_type
        template_file = ""
        if type_value == enum_template.STEP_TYPE_SCRIPT:
            template_file = "job_manage/edit_script.html"
            sub_step = _template.get_templateStepScript_by_params(step=step)
            perms = _account.get_perms_by_params(
                to_user=user,
                is_delete=False,
                ptype=enum_account.PERM_PTYPE_SCRIPT)
            scripts = _script.Script.objects.filter(
                Q(create_user=user)
                | Q(pk__in=[perm.object_id for perm in perms]),
                is_delete=False,
                is_once=False)
            version = sub_step.version
            script = version.script if version and version.script in scripts else None
            versions = _script.get_versions_by_params(
                script=script, is_delete=False) if script else None

            scrip_id_list = [script.id for script in scripts]
            user_set = set()
            user_set.add(user)
            accounts_perm = _account.get_perms_by_params(
                object_id__in=scrip_id_list, is_delete=False)
            for account_perm in accounts_perm:
                user_set.add(account_perm.create_user)
                user_set.add(account_perm.to_user)
            accounts = _account.get_accounts_by_params(
                is_delete=False, create_user__in=list(user_set))

            accountForm = AccountForm(auto_id="step_script_%s")
            account_id = step.account.id if step.account else 0

        elif type_value == enum_template.STEP_TYPE_PULL_FILE:
            template_file = "job_manage/edit_pull_file.html"
            sub_step = _template.get_templateStepPullFile_by_params(step=step)
            file_paths = [] if not sub_step.file_paths else json.loads(
                sub_step.file_paths)

        elif type_value == enum_template.STEP_TYPE_PUSH_FILE:
            template_file = "job_manage/edit_send_file.html"
            sub_step = _template.get_templateStepPushFile_by_params(step=step)
            file_infos = _template.get_templateFileInfos_by_params(step=step)
            local_uploads = file_infos.filter(
                location_type=enum_template.UPLOAD_TYPE_LOCAL).values('record')
            remote_uploads = file_infos.filter(
                location_type=enum_template.UPLOAD_TYPE_REMOTE)
            local_ids = "" if not local_uploads else " ".join(
                str(item.get('record')) for item in local_uploads) + " "
            remote_uploads_str = ""
            if remote_uploads.count() > 0:
                remote_dict = {}
                remote_dict['remote'] = [{
                    "name": item.remote_path,
                    "ip": item.remote_ip
                } for item in remote_uploads]
                remote_uploads_str = json.dumps(remote_dict)
            user = request.user
            max_upload_size = MAX_UPLOAD_SIZE
            fileserver_url = FILE_SERVER_HOST

        elif type_value == enum_template.STEP_TYPE_TEXT:
            template_file = "job_manage/edit_text.html"
            sub_step = _template.get_templateStepText_by_params(step=step)

        if type_value in [
                enum_template.STEP_TYPE_PULL_FILE,
                enum_template.STEP_TYPE_PUSH_FILE,
                enum_template.STEP_TYPE_SCRIPT
        ]:
            target_ips = json.loads(step.target) if step.target else []
            hide_ip_dict = build_hidden_ip_dict(target_ips)
            hide_ip_json = json.dumps(hide_ip_dict)

        status = 200
        data['html'] = render_to_string(template_file, locals())
        data['name'] = step.name
    except Exception, e:
        data['msg'] = msg if msg else u"步骤信息获取失败"
        error = traceback.format_exc()
        logger.error(error)
        print error
Beispiel #19
0
def template_step_edit_v2(request,template_step_id):
    """
        edit template step.
    """
    req = request.POST
    user = request.user
    status = 500
    data = {}
    msg = ""
    try:
        step = _template.get_templateStep_by_params(id=template_step_id)
        if not step:
            msg = u"步骤不存在"
            raise Exception,msg
        # if step.template.create_user!=user:
        #     msg = u"您不是该步骤的所有者"
        #     raise Exception,msg

        type_value = step.step_type
        template_file = ""
        if type_value == enum_template.STEP_TYPE_SCRIPT:
            template_file = "job_manage/edit_script.html"
            sub_step = _template.get_templateStepScript_by_params(step=step)
            perms = _account.get_perms_by_params(to_user=user, is_delete=False, ptype=enum_account.PERM_PTYPE_SCRIPT)
            scripts = _script.Script.objects.filter(Q(create_user=user)|Q(pk__in=[perm.object_id for perm in perms]),
                                                    is_delete=False,is_once=False)
            version = sub_step.version
            script = version.script if version and version.script in scripts else None
            versions = _script.get_versions_by_params(script=script,is_delete=False) if script else None
            
            scrip_id_list = [script.id for script in scripts]
            user_set = set()
            user_set.add(user)
            accounts_perm = _account.get_perms_by_params(object_id__in=scrip_id_list, is_delete=False)
            for account_perm in accounts_perm:
                user_set.add(account_perm.create_user)
                user_set.add(account_perm.to_user)
            accounts = _account.get_accounts_by_params(is_delete=False,create_user__in=list(user_set))
            
            accountForm = AccountForm(auto_id="step_script_%s")
            account_id = step.account.id if step.account else 0

        elif type_value == enum_template.STEP_TYPE_PULL_FILE:
            template_file = "job_manage/edit_pull_file.html"
            sub_step = _template.get_templateStepPullFile_by_params(step=step)
            file_paths = [] if not sub_step.file_paths else json.loads(sub_step.file_paths)

        elif type_value == enum_template.STEP_TYPE_PUSH_FILE:
            template_file = "job_manage/edit_send_file.html"
            sub_step = _template.get_templateStepPushFile_by_params(step=step)
            file_infos = _template.get_templateFileInfos_by_params(step=step)
            local_uploads = file_infos.filter(location_type=enum_template.UPLOAD_TYPE_LOCAL).values('record')
            remote_uploads = file_infos.filter(location_type=enum_template.UPLOAD_TYPE_REMOTE)
            local_ids = "" if not local_uploads else " ".join(str(item.get('record')) for item in local_uploads)+" "
            remote_uploads_str = ""
            if remote_uploads.count()>0:
                remote_dict = {}
                remote_dict['remote'] = [{"name":item.remote_path,"ip":item.remote_ip} for item in remote_uploads]
                remote_uploads_str = json.dumps(remote_dict)
            user = request.user
            max_upload_size = MAX_UPLOAD_SIZE
            fileserver_url = FILE_SERVER_HOST

        elif type_value == enum_template.STEP_TYPE_TEXT:
            template_file = "job_manage/edit_text.html"
            sub_step = _template.get_templateStepText_by_params(step=step)

        if type_value in [enum_template.STEP_TYPE_PULL_FILE,enum_template.STEP_TYPE_PUSH_FILE,enum_template.STEP_TYPE_SCRIPT]:
            target_ips = json.loads(step.target) if step.target else []
            hide_ip_dict = build_hidden_ip_dict(target_ips)
            hide_ip_json = json.dumps(hide_ip_dict)

        status=200
        data['html'] = render_to_string(template_file,locals())
        data['name'] = step.name
    except Exception,e:
        data['msg'] = msg if msg else u"步骤信息获取失败"
        error = traceback.format_exc()
        logger.error(error)
        print error
Beispiel #20
0
         f = open(file_path, 'wb')
         try:
             f.write(file_content)
         except Exception,e:
             print e
         finally:
             f.close()
             
         md5sum = calc_md5(file_path)
         fileserver_save_file(file_path,user.username,md5sum)
 
         version.sfile = u'%s/%s'%(file_doc_num, filename)
         version.save()
         
         script_type_display = script.get_script_type_display()
         version_list = _script.get_versions_by_params(script=script,is_delete=False)
         
         code = 200
     else:
         code = 500
     
     template_file = "script_manage/script_view.html"
     html = render_to_string(template_file, locals())
     sdicts['status'] = code
     sdicts['script_id'] = script.id
     sdicts['html'] = html
     return HttpResponse(json.dumps(sdicts))
 else:
     version_id = request.GET.get('version_id',0)
     version = _script.get_version_by_params(id=version_id)
     if version: