Ejemplo n.º 1
0
def change(request):
    if request.POST:
        if request.POST.get('deploy_id') is None or request.POST.get(
                'env_id') is None:
            messages.error(request, '参数错误,请重新选择!', extra_tags='c-error')
            return redirect('envx:list')
        else:
            deploy_id = request.POST.get('deploy_id')
            env_id = request.POST.get('env_id')
            deploy_item = DeployPool.objects.get(id=deploy_id)
            org_env_name = deploy_item.env_name.name if deploy_item.env_name is not None else "BUILD"
            action_item = Action.objects.get(name="XCHANGE")
            app_id = deploy_item.app_name.id
            action_id = action_item.id
            if not is_right(app_id, action_id, 0, request.user):
                manage_user = get_app_admin(app_id)
                messages.error(request,
                               '没有权限,请联系{}'.format(manage_user),
                               extra_tags='c-error')
                return redirect('envx:list')
            env_name = Env.objects.get(id=env_id)
            deploy_status = DeployStatus.objects.get(name="READY")
            DeployPool.objects.filter(id=deploy_id).update(
                env_name=env_name, deploy_status=deploy_status)
            messages.success(request, '环境流转成功!', extra_tags='c-success')
            # 构建环境流转历史记录参数
            user = request.user
            app_name = deploy_item.app_name
            content = {'before': org_env_name, 'after': env_name.name}
            add_history(user, app_name, deploy_item, content)
            return redirect('envx:list')
    else:
        return redirect('envx:list')
Ejemplo n.º 2
0
    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['now'] = timezone.now()
        context['current_page'] = "operate-app"
        context['current_page_name'] = "服务器列表"

        app_item = App.objects.get(id=self.kwargs['app_name'])
        env_item = Env.objects.get(id=self.kwargs['env'])
        context['op_log_no'] = app_item.op_log_no
        context['app_name'] = app_item.name
        context['env'] = env_item.name
        context['mablog_url'] = settings.MABLOG_URL

        # 用于权限判断及前端展示
        context['is_right'] = True
        app_id = app_item.id
        env_id = env_item.id
        action_item = Action.objects.get(name="DEPLOY")
        action_id = action_item.id
        if not is_right(app_id, action_id, env_id, self.request.user):
            context['is_right'] = False
            context['admin_user'] = get_app_admin(app_id)

        query_string = self.request.META.get('QUERY_STRING')
        if 'page' in query_string:
            query_list = query_string.split('&')
            query_list = [
                elem for elem in query_list if not elem.startswith('page')
            ]
            query_string = '?' + "&".join(query_list) + '&'
        elif query_string is not None:
            query_string = '?' + query_string + '&'
        context['current_url'] = query_string
        return context
Ejemplo n.º 3
0
    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['now'] = timezone.now()
        context['current_page'] = 'operate-app'
        context['current_page_name'] = '服务器列表'
        app_item = App.objects.get(id=self.kwargs['app_id'])
        env_item = Env.objects.get(id=self.kwargs['env'])
        context['op_log_no'] = app_item.op_log_no
        context['app_name'] = app_item.name
        context['env'] = env_item.name
        context['mablog_url'] = settings.MABLOG_URL
        context['deploy_version'] = 'Demo'

        app_id = app_item.id
        env_id = env_item.id
        action_item = Action.objects.get(name='DEPLOY')
        action_id = action_item.id
        context['has_right'] = has_right(app_id, action_id, env_id,
                                         self.request.user)
        context['admin_user'] = get_app_admin(app_id)

        query_string = self.request.META.get('QUERY_STRING')
        if 'page' in query_string:
            query_list = query_string.split('&')
            query_list = [
                elem for elem in query_list if not elem.startswith('page')
            ]
            query_string = '?' + '&'.join(query_list) + '&'
        elif query_string is not None:
            query_string = '?' + query_string + '&'
        context['current_url'] = query_string
        return context
Ejemplo n.º 4
0
    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        app_name = self.kwargs['app_name']
        deploy_version = self.kwargs['deploy_version']
        # 这里根据业务逻辑应该赋值为Demo,
        # 因为约定env为Demo则视为软件发布操作,
        # deploy_version为Demo则视为服务启停操作,千万注意,这里就是个标识,
        # 真实的env在发布时查询获得,及在action_run时才需要
        context['env'] = 'Demo'
        context['now'] = timezone.now()
        context['current_page'] = 'deploy-list'
        context['current_page_name'] = '部署服务器列表'
        context['app_name'] = app_name
        context['deploy_version'] = deploy_version
        deploy_item = DeployPool.objects.get(name=deploy_version)
        context['is_restart_status'] = deploy_item.app_name.is_restart_status
        context['deploy_type'] = deploy_item.deploy_type
        context['deploy_no'] = deploy_item.deploy_no
        context['is_inc_tot'] = deploy_item.is_inc_tot
        context['mablog_url'] = settings.MABLOG_URL

        app_id = deploy_item.app_name.id
        env_id = deploy_item.env_name.id
        action_item = Action.objects.get(name='DEPLOY')
        action_id = action_item.id
        context['has_right'] = has_right(app_id, action_id, env_id,
                                         self.request.user)
        context['admin_user'] = get_app_admin(app_id)

        query_string = self.request.META.get('QUERY_STRING')
        if 'page' in query_string:
            query_list = query_string.split('&')
            query_list = [
                elem for elem in query_list if not elem.startswith('page')
            ]
            query_string = '?' + '&'.join(query_list) + '&'
        elif query_string is not None:
            query_string = '?' + query_string + '&'
        context['current_url'] = query_string
        return context
Ejemplo n.º 5
0
    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        app_name = self.kwargs['app_name']
        deploy_version = self.kwargs['deploy_version']
        context['now'] = timezone.now()
        context['current_page'] = "deploy-list"
        context['current_page_name'] = "部署服务器列表"
        context['app_name'] = app_name
        context['deploy_version'] = deploy_version
        context['env'] = self.kwargs['env']
        deploy_item = DeployPool.objects.get(name=deploy_version)
        context['is_restart_status'] = deploy_item.app_name.is_restart_status
        context['deploy_type'] = deploy_item.deploy_type
        context['deploy_no'] = deploy_item.deploy_no
        context['is_inc_tot'] = deploy_item.is_inc_tot
        context['mablog_url'] = settings.MABLOG_URL

        # 用于权限判断及前端展示
        context['is_right'] = True
        app_id = deploy_item.app_name.id
        env_id = deploy_item.env_name.id
        action_item = Action.objects.get(name="DEPLOY")
        action_id = action_item.id
        if not is_right(app_id, action_id, env_id, self.request.user):
            context['is_right'] = False
            context['admin_user'] = get_app_admin(app_id)

        query_string = self.request.META.get('QUERY_STRING')
        if 'page' in query_string:
            query_list = query_string.split('&')
            query_list = [
                elem for elem in query_list if not elem.startswith('page')
            ]
            query_string = '?' + "&".join(query_list) + '&'
        elif query_string is not None:
            query_string = '?' + query_string + '&'
        context['current_url'] = query_string
        return context
Ejemplo n.º 6
0
def change(request):
    if request.POST:
        if request.POST.get('deploy_id') is None or request.POST.get(
                'env_id') is None:
            messages.error(request, '参数错误,请重新选择!', extra_tags='c-error')
            return redirect('envx:list')
        else:
            deploy_id = request.POST.get('deploy_id')
            env_id = request.POST.get('env_id')
            deploy_item = DeployPool.objects.get(id=deploy_id)
            action_item = Action.objects.get(name="XCHANGE")
            app_id = deploy_item.app_name.id
            action_id = action_item.id
            if not is_right(app_id, action_id, 0, request.user):
                manage_user = get_app_admin(app_id)
                messages.error(request,
                               '没有权限,请联系{}'.format(manage_user),
                               extra_tags='c-error')
                return redirect('envx:list')
            env_name = Env.objects.get(id=env_id)
            DeployPool.objects.filter(id=deploy_id).update(
                env_name=env_name, deploy_status='Ready')
            messages.success(request, '环境流转成功!', extra_tags='c-success')
            return redirect('envx:list')