示例#1
0
 def get_context_data(self, **kwargs):
     if not JobAccess(self.request.user, self.object.root.job).can_view():
         raise BridgeException(code=400)
     try:
         etv = GetETV(
             ArchiveFileContent(self.object, 'error_trace',
                                ERROR_TRACE_FILE).content.decode('utf8'),
             self.request.user)
     except Exception as e:
         logger.exception(e, stack_info=True)
         etv = None
     return {
         'report':
         self.object,
         'report_type':
         'unsafe',
         'parents':
         reports.utils.get_parents(self.object),
         'SelfAttrsData':
         reports.utils.report_attibutes(self.object),
         'MarkTable':
         ReportMarkTable(self.request.user, self.object,
                         self.get_view(VIEW_TYPES[10])),
         'etv':
         etv,
         'include_assumptions':
         self.request.user.extended.assumptions,
         'include_jquery_ui':
         True,
         'resources':
         reports.utils.get_leaf_resources(self.request.user, self.object)
     }
示例#2
0
文件: views.py 项目: naumushv/klever
 def get_context_data(self, **kwargs):
     if not JobAccess(self.request.user, self.object.decision.job).can_view:
         raise BridgeException(code=400)
     return {
         'report':
         self.object,
         'include_jquery_ui':
         True,
         'etv':
         GetETV(
             ArchiveFileContent(self.object, 'error_trace',
                                ERROR_TRACE_FILE).content.decode('utf8'),
             self.request.user)
     }
示例#3
0
 def get_context_data(self, **kwargs):
     if not JobAccess(self.request.user, self.object.root.job).can_view():
         raise BridgeException(code=400)
     return {
         'report':
         self.object,
         'include_assumptions':
         self.request.user.extended.assumptions,
         'etv':
         GetETV(
             ArchiveFileContent(self.object, 'error_trace',
                                ERROR_TRACE_FILE).content.decode('utf8'),
             self.request.user)
     }
示例#4
0
    def __check_traces(self):
        manager = Extended.objects.filter(role=USER_ROLES[2][0]).first()
        if not manager:
            raise ValueError(
                "Can't check error traces without manager in the system")

        files = self.__get_list_of_sources()
        for tr_name in self._traces:
            res = GetETV(self.__read_trace(tr_name), manager.user)

            if 'attrs' in res.data:
                self.add_attrs[tr_name] = res.data['attrs']
            if 'files' not in res.data:
                raise ValueError('Wrong format of error trace')

            trace_files = set(f[1:] if f.startswith('/') else f
                              for f in res.data['files'])
            if any(x not in files for x in trace_files):
                raise ValueError(
                    "Sources doesn't have needed source for error trace")
示例#5
0
文件: views.py 项目: lutovna/klever
    def get_context_data(self, **kwargs):
        if not JobAccess(self.request.user, self.object.decision.job).can_view:
            raise BridgeException(code=400)
        try:
            etv = GetETV(
                ArchiveFileContent(self.object, 'error_trace',
                                   ERROR_TRACE_FILE).content.decode('utf8'),
                self.request.user)
        except Exception as e:
            logger.exception(e)
            etv = None
        context = super().get_context_data(**kwargs)
        if self.object.decision.weight == DECISION_WEIGHT[0][0]:
            context['parents'] = get_parents(self.object)
        context['verifier_files_url'] = leaf_verifier_files_url(self.object)
        context.update({
            'include_jquery_ui':
            True,
            'report':
            self.object,
            'etv':
            etv,
            'SelfAttrsData':
            self.object.attrs.order_by('id').values_list(
                'id', 'name', 'value', 'data'),
            'MarkTable':
            UnsafeReportMarksTable(self.request.user, self.object,
                                   self.get_view(VIEW_TYPES[10])),
            'resources':
            report_resources(self.request.user, self.object)
        })

        # Get parent coverage if exists and parent is verification report
        cov_obj = CoverageArchive.objects.filter(
            report_id=self.object.parent_id,
            report__verification=True).first()
        if cov_obj:
            context['coverage'] = LeafCoverageStatistics(cov_obj)

        return context
示例#6
0
    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['include_jquery_ui'] = True
        context['etv'] = context['json'] = None

        et_index = 0
        if 'index' in self.request.GET:
            et_index = int(self.request.GET['index'])
        context['index'] = et_index

        et_dir = os.path.join(settings.BASE_DIR, 'tools', 'error-traces')
        error_traces = os.listdir(et_dir)
        context['error_traces'] = list((i, error_traces[i]) for i in range(len(error_traces)))
        if len(error_traces) > et_index:
            with open(os.path.join(et_dir, error_traces[0]), mode='r', encoding='utf-8') as fp:
                error_trace = fp.read()
            try:
                context['etv'] = GetETV(error_trace, self.request.user)
            except Exception as e:
                logger.exception(e)
            context['json'] = ErrorTraceAnanlizer(error_trace).get_trace().replace('\\"', '\\\\"')
        return context