コード例 #1
0
    def extrair(self, **argumentos):
        arquivo_xml = argumentos.get('arquivo')
        xp = XpathParser()
        try:
            build = argumentos.get('build')

            xp.parser(arquivo_xml)
            lista = xp.content('//annotation-array/bug').items()
            for item in lista:
                key = item.get('key')
                try:
                    checklist = Checklist.objects.get(build=build, key=key)
                except:
                    checklist = Checklist()

                checklist.build = build
                checklist.message = item.get('message')
                checklist.priority = item.get('priority')
                checklist.key = key
                checklist.primary_line_number = item.get('primaryLineNumber')
                checklist.filename = item.get('fileName')
                checklist.module = item.get('moduleName')
                checklist.package = item.get('packageName')
                checklist.category = item.get('category')
                checklist.type_warning = item.get('type')

                checklist.save()
        except Exception, e:
            log(identifier=__name__, filename=arquivo_xml, message=e)
コード例 #2
0
    def extrair(self, **argumentos):
        arquivo_xml = argumentos.get('arquivo')
        xp = XpathParser()
        try:
            build = argumentos.get('build')

            xp.parser(arquivo_xml)
            ambientes = xp.content(
                '//hudson.plugins.ambiente.PromoteAmbienteAction/listaAmbienteVo/hudson.plugins.ambiente.AmbienteVo'
            ).items()
            for selo_ambiente in ambientes:
                timestamp = selo_ambiente.get('timestamp')
                numero_rs = selo_ambiente.get('numeroRs')

                try:
                    ambiente = Ambiente.objects.get(build=build,
                                                    timestamp=timestamp,
                                                    numero_rs=numero_rs)
                except:
                    ambiente = Ambiente()
                ambiente.build = build
                ambiente.numero_rs = numero_rs
                ambiente.timestamp = timestamp
                ambiente.mensagem = selo_ambiente.get('mensagem')
                ambiente.level = selo_ambiente.get('level')
                ambiente.level_value = selo_ambiente.get('levelValue')

                ambiente.user = util.Text().format_login(
                    selo_ambiente.get('user'))
                ambiente.datetime = util.DateTime().timestamp_to_datetime(
                    ambiente.timestamp)
                ambiente.save()
        except Exception, e:
            log(identifier=__name__, filename=arquivo_xml, message=e)
コード例 #3
0
    def extrair(self, **argumentos):
        arquivo_xml = argumentos.get('arquivo')
        xp = XpathParser()
        try:
            build = argumentos.get('build')

            xp.parser(arquivo_xml)
            lista = xp.content('//annotation-array/bug').items()
            for item in lista:
                key = item.get('key')
                try:
                    checklist = Checklist.objects.get(build=build, key=key)
                except:
                    checklist = Checklist()

                checklist.build = build
                checklist.message = item.get('message')
                checklist.priority = item.get('priority')
                checklist.key = key
                checklist.primary_line_number = item.get('primaryLineNumber')
                checklist.filename = item.get('fileName')
                checklist.module = item.get('moduleName')
                checklist.package = item.get('packageName')
                checklist.category = item.get('category')
                checklist.type_warning = item.get('type')

                checklist.save()
        except Exception, e:
            log(identifier=__name__, filename=arquivo_xml, message=e)
コード例 #4
0
    def test_raises_exeption_if_file_is_invalid_xml(self):
        filename = self.resources + '/invalid.xml'
        assert os.path.exists(filename)

        try:
            xp = XpathParser()
            xp.parser(filename)
            self.fail()
            #except libxml2.parserError:
        except:
            pass
コード例 #5
0
    def test_raises_exeption_if_file_is_invalid_xml(self):
        filename = self.resources + '/invalid.xml'
        assert os.path.exists(filename)

        try:
            xp = XpathParser()
            xp.parser(filename)
            self.fail()
            #except libxml2.parserError:
        except:
            pass
コード例 #6
0
 def obter_vertical(self, **argumentos):
     arquivo_xml = argumentos.get('arquivo')
     xp = XpathParser()
     try:
         job = argumentos.get('job')
         xp.parser(arquivo_xml)
         xpath_str = '//listView/name[following-sibling::jobNames[descendant::string="%s"]]' % job.name
         views = xp.content(xpath_str).list()
         for v in views:
             if not v.strip()[0:4] == 'BSAD':
                 return v
     except Exception, e:
         log(identifier=__name__, filename=arquivo_xml, message=e)
         return None
コード例 #7
0
ファイル: jenkins.py プロジェクト: gustavohenrique/maroulive
 def obter_vertical(self, **argumentos):
     arquivo_xml = argumentos.get('arquivo')
     xp = XpathParser()
     try:
         job = argumentos.get('job')
         xp.parser(arquivo_xml)
         xpath_str = '//listView/name[following-sibling::jobNames[descendant::string="%s"]]' % job.name
         views = xp.content(xpath_str).list()
         for v in views:
             if not v.strip()[0:4] == 'BSAD':
                 return v
     except Exception, e:
         log(identifier=__name__, filename=arquivo_xml, message=e)
         return None
コード例 #8
0
ファイル: bsra.py プロジェクト: gustavohenrique/maroulive
 def _extrair_dados_bsra_services(self, build, arquivo_xml):
     xp = XpathParser()
     try:
         xp.parser(arquivo_xml)
         content = xp.content('//bsra/service').attributes()
         for data in content:
             bsra = Bsra()
             bsra.build = build
             bsra.nome = data.get('name')
             bsra.identificador = data.get('identify')
             bsra.tipo = data.get('type')
             bsra.reusabilidade = data.get('reusability')
             bsra.modulo = data.get('moduleName')
             bsra.registrado = data.get('registered') == 'true'
             bsra.save()
     except Exception, e:
         log(identifier=__name__, filename=arquivo_xml, message='Erro ao extrair dados do BSRA Services: %s' % e)
コード例 #9
0
ファイル: job.py プロジェクト: gustavohenrique/maroulive
    def extrair(self, **argumentos):
        arquivo_xml = argumentos.get('arquivo')
        xp = XpathParser()
        try:
            nome_do_job = argumentos.get('nome')
            xp.parser(arquivo_xml)

            job, criado = Job.objects.get_or_create(name=nome_do_job)
            job.disabled = xp.content('//project/disabled').text()
            job.jdk = xp.content('//project/jdk').text()
            job.save()

            usuarios = xp.content('//hudson.security.AuthorizationMatrixProperty/permission').list()
            job = self._job_com_usuarios(job, usuarios)
            return job

        except Exception, e:
            log(identifier=__name__, filename=arquivo_xml, message='Erro ao extrair dados do Job: %s' % e)
コード例 #10
0
ファイル: bsra.py プロジェクト: gustavohenrique/maroulive
 def _extrair_dados_bsra_warnings(self, build, arquivo_xml):
     xp = XpathParser()
     try:
         xp.parser(arquivo_xml)
         content = xp.content('//hudson.plugins.bsra.parser.Warning[descendant::message]').items()
         for item in content:
             data = util.Text().get_data_from_string(item.get('message'))
             bsra = Bsra()
             bsra.build = build
             bsra.nome = data.get('Nome')
             bsra.identificador = data.get('Identificador')
             bsra.tipo = data.get('Tipo')
             bsra.reusabilidade = data.get('Reusabilidade').replace('.', '')
             bsra.modulo = item.get('moduleName')
             bsra.registrado = False
             bsra.save()
     except Exception, e:
         log(identifier=__name__, filename=arquivo_xml, message='Erro ao extrair dados do BSRA Warnings: %s' % e)
コード例 #11
0
ファイル: bsra.py プロジェクト: gustavohenrique/maroulive
 def _extrair_dados_bsra_services(self, build, arquivo_xml):
     xp = XpathParser()
     try:
         xp.parser(arquivo_xml)
         content = xp.content('//bsra/service').attributes()
         for data in content:
             bsra = Bsra()
             bsra.build = build
             bsra.nome = data.get('name')
             bsra.identificador = data.get('identify')
             bsra.tipo = data.get('type')
             bsra.reusabilidade = data.get('reusability')
             bsra.modulo = data.get('moduleName')
             bsra.registrado = data.get('registered') == 'true'
             bsra.save()
     except Exception, e:
         log(identifier=__name__,
             filename=arquivo_xml,
             message='Erro ao extrair dados do BSRA Services: %s' % e)
コード例 #12
0
    def obter_framework(self, **argumentos):
        arquivo_xml = argumentos.get('arquivo')
        xp = XpathParser()
        try:
            job = argumentos.get('job')
            xp.parser(arquivo_xml)
            xpath_str = '//listView[descendant::name=" BSAD %s"]/jobNames/string'
            bsad1_jobs = xp.content(xpath_str % '1').list()
            bsad2_jobs = xp.content(xpath_str % '2').list()

            framework = 'BSAD 3'
            if job.name in bsad1_jobs:
                framework = 'BSAD 1'
            if job.name in bsad2_jobs:
                framework = 'BSAD 2'

            return framework
        except Exception, e:
            log(identifier=__name__, filename=arquivo_xml, message=e)
            return None
コード例 #13
0
ファイル: jenkins.py プロジェクト: gustavohenrique/maroulive
    def obter_framework(self, **argumentos):
        arquivo_xml = argumentos.get('arquivo')
        xp = XpathParser()
        try:
            job = argumentos.get('job')
            xp.parser(arquivo_xml)
            xpath_str = '//listView[descendant::name=" BSAD %s"]/jobNames/string'
            bsad1_jobs = xp.content(xpath_str % '1').list()
            bsad2_jobs = xp.content(xpath_str % '2').list()

            framework = 'BSAD 3'
            if job.name in bsad1_jobs:
                framework = 'BSAD 1'
            if job.name in bsad2_jobs:
                framework = 'BSAD 2'

            return framework
        except Exception, e:
            log(identifier=__name__, filename=arquivo_xml, message=e)
            return None
コード例 #14
0
ファイル: ncss.py プロジェクト: gustavohenrique/maroulive
    def extrair(self, **argumentos):
        arquivo_xml = argumentos.get('arquivo')
        xp = XpathParser()
        try:
            build = argumentos.get('build')

            xp.parser(arquivo_xml)
            data = xp.content('//hudson.plugins.javancss.JavaNCSSBuildIndividualReport/totals').items()[0]
            ncss = Ncss()
            ncss.build = build
            ncss.ncss = data.get('ncss')
            ncss.classes = data.get('classes')
            ncss.functions = data.get('functions')
            ncss.javadocs = data.get('javadocs')
            ncss.javadocs_lines = data.get('javadocLines')
            ncss.single_comments_line = data.get('singleCommentLines')
            ncss.multi_comments_line = data.get('multiCommentLines')
            ncss.save()
        except Exception, e:
            log(identifier=__name__, filename=arquivo_xml, message=e)
コード例 #15
0
ファイル: bsra.py プロジェクト: gustavohenrique/maroulive
 def _extrair_dados_bsra_warnings(self, build, arquivo_xml):
     xp = XpathParser()
     try:
         xp.parser(arquivo_xml)
         content = xp.content(
             '//hudson.plugins.bsra.parser.Warning[descendant::message]'
         ).items()
         for item in content:
             data = util.Text().get_data_from_string(item.get('message'))
             bsra = Bsra()
             bsra.build = build
             bsra.nome = data.get('Nome')
             bsra.identificador = data.get('Identificador')
             bsra.tipo = data.get('Tipo')
             bsra.reusabilidade = data.get('Reusabilidade').replace('.', '')
             bsra.modulo = item.get('moduleName')
             bsra.registrado = False
             bsra.save()
     except Exception, e:
         log(identifier=__name__,
             filename=arquivo_xml,
             message='Erro ao extrair dados do BSRA Warnings: %s' % e)
コード例 #16
0
ファイル: build.py プロジェクト: gustavohenrique/maroulive
    def extrair(self, **argumentos):
        arquivo_xml = argumentos.get('arquivo')
        xp = XpathParser()
        try:
            job = argumentos.get('job')
            build_name = argumentos.get('nome')

            xp.parser(arquivo_xml)

            build_number = xp.content('//build/number').text()
            try:
                build = Build.objects.get(job=job, number=build_number)
            except:
                build = Build()

            build.job = job
            build.name = build_name
            build.number = build_number
            build.result = xp.content('//build/result').text()
            build.description = xp.content('//build/description').text()
            build.charset = xp.content('//build/charset').text()
            build.built_on = xp.content('//build/builtOn').text()
            build.workspace = xp.content('//build/workspace').text()
            build.hudson_version = xp.content('//build/hudsonVersion').text()
            build.release_version = xp.content(
                '//hudson.plugins.release.ReleaseWrapper_-ReleaseBuildBadgeAction/releaseVersion'
            ).text()
            build.bsra_warnings = xp.content('//result/numberOfWarnings')

            datetime_util = util.DateTime()
            build.datetime = datetime_util.str_to_datetime(build_name)
            build.duration = datetime_util.ms_to_seconds(
                xp.content('//build/duration').text())
            build.user = util.Text().format_login(
                xp.content('//hudson.model.Cause_-UserCause/authenticationName'
                           ).text())

            violations = xp.content('//violations/entry').concat(
                './string', './int')
            build.checkstyle_violations = violations.get('checkstyle')
            build.cpd_violations = violations.get('cpd')
            build.findbugs_violations = violations.get('findbugs')
            build.pmd_violations = violations.get('pmd')

            qualidade = xp.content(
                '//hudson.plugins.selo__qualidade.PromoteAction').items()
            if len(qualidade) > 0:
                selo_qualidade = qualidade[0]
                selo_qualidade = xp.content(
                    '//hudson.plugins.selo__qualidade.PromoteAction').items(
                    )[0]
                build.selo_qualidade_user = selo_qualidade.get('user')
                build.selo_qualidade_numeroRs = selo_qualidade.get('numeroRs')
                build.selo_qualidade_mensagem = selo_qualidade.get('mensagem')
                build.selo_qualidade_level = selo_qualidade.get('level')
                build.selo_qualidade_levelValue = selo_qualidade.get(
                    'levelValue')

            build.save()

            return build
        except Exception, e:
            log(identifier=__name__, filename=arquivo_xml, message=e)