コード例 #1
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)
コード例 #2
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)
コード例 #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_get_children_content_from_node_list(self):
        """
        <project>
            <hudson.tasks.Maven>
                <targets>String 1</targets>
                <mavenName>String 2</mavenName>
                <pom>String 3</pom>
                <usePrivateRepository>String 4</usePrivateRepository>
            </hudson.tasks.Maven>
            <hudson.tasks.Maven>
                <targets>String 1</targets>
                <mavenName>String 2</mavenName>
                <pom>String 3</pom>
                <usePrivateRepository>String 4</usePrivateRepository>
            </hudson.tasks.Maven>
        </project>
        """

        parser = XpathParser().parser(self.file)
        nodes = parser.content('//hudson.tasks.Maven').nodes
        self.assertEqual(6, len(nodes))

        result = parser.items()

        node1 = result[0]
        self.assertEqual('-e -U clean', node1.get('targets'))
        self.assertEqual('maven2.2.1', node1.get('mavenName'))
        self.assertEqual('LEXW-BsLexWeb-pom/pom.xml', node1.get('pom'))
        self.assertEqual('false', node1.get('usePrivateRepository'))

        node2 = result[1]
        self.assertEqual('-e -U clean install', node2.get('targets'))
        self.assertEqual('maven2.2.1', node2.get('mavenName'))
        self.assertEqual('LEXW-BsLexWeb-util/pom.xml', node2.get('pom'))
        self.assertEqual('false', node2.get('usePrivateRepository'))

        node3 = result[2]
        self.assertEqual('-e -U clean install', node3.get('targets'))
        self.assertEqual('maven2.2.1', node3.get('mavenName'))
        self.assertEqual('LEXW-BsLexWeb-ejbClient/pom.xml', node3.get('pom'))
        self.assertEqual('false', node3.get('usePrivateRepository'))

        node4 = result[3]
        self.assertEqual('-e -U clean install', node4.get('targets'))
        self.assertEqual('maven2.2.1', node4.get('mavenName'))
        self.assertEqual('LEXW-BsLexWeb-ejb/pom.xml', node4.get('pom'))
        self.assertEqual('false', node4.get('usePrivateRepository'))

        node5 = result[4]
        self.assertEqual('-e -U -DskipTests=true install org.codehaus.mojo:was6-maven-plugin:1.2-SNAPSHOT:ejbdeploy -Dwas6.skip=true', node5.get('targets'))
        self.assertEqual('maven2.2.1', node5.get('mavenName'))
        self.assertEqual('LEXW-BsLexWeb-pom/pom.xml', node5.get('pom'))
        self.assertEqual('false', node5.get('usePrivateRepository'))

        node6 = result[5]
        self.assertEqual('-e install -Pqualidade org.codehaus.mojo:was6-maven-plugin:1.2-SNAPSHOT:ejbdeploy -Dwas6.skip=true org.apache.maven.plugins:maven-javadoc-plugin:2.7:javadoc -Dmaven.javadoc.skip=true', node6.get('targets'))
        self.assertEqual('maven2.2.1', node6.get('mavenName'))
        self.assertEqual('LEXW-BsLexWeb-pom/pom.xml', node6.get('pom'))
        self.assertEqual('false', node6.get('usePrivateRepository'))
コード例 #5
0
    def test_get_content_from_one_node(self):
        """
        <project><disabled>boolean</disabled></project>
        """

        parser = XpathParser().parser(self.file)
        result = parser.content('//project/disabled').text()
        self.assertEqual('false', result)
コード例 #6
0
    def test_get_content_from_one_node(self):
        """
        <project><disabled>boolean</disabled></project>
        """

        parser = XpathParser().parser(self.file)
        result = parser.content('//project/disabled').text()
        self.assertEqual('false', result)
コード例 #7
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
コード例 #8
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
コード例 #9
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
コード例 #10
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
コード例 #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 test_get_children_content_from_one_node(self):
        """
        <project>
            <hudson.security.AuthorizationMatrixProperty>
                <permission>String 1</permission>
                <permission>String 2</permission>
                <permission>String 3</permission>
            </hudson.security.AuthorizationMatrixProperty>
        </project>
        """

        parser = XpathParser().parser(self.file)
        result = parser.content('//hudson.security.AuthorizationMatrixProperty/permission').list()
        self.assertEqual(46, len(result))

        self.assertEqual('hudson.model.Item.Read:L897286', result[0])
        self.assertEqual('hudson.model.Item.Read:L806229', result[1])
        self.assertEqual('hudson.model.Item.Read:L838756', result[2])
コード例 #13
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)
コード例 #14
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)
コード例 #15
0
    def test_get_children_content_from_one_node(self):
        """
        <project>
            <hudson.security.AuthorizationMatrixProperty>
                <permission>String 1</permission>
                <permission>String 2</permission>
                <permission>String 3</permission>
            </hudson.security.AuthorizationMatrixProperty>
        </project>
        """

        parser = XpathParser().parser(self.file)
        result = parser.content(
            '//hudson.security.AuthorizationMatrixProperty/permission').list()
        self.assertEqual(46, len(result))

        self.assertEqual('hudson.model.Item.Read:L897286', result[0])
        self.assertEqual('hudson.model.Item.Read:L806229', result[1])
        self.assertEqual('hudson.model.Item.Read:L838756', result[2])
コード例 #16
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)
コード例 #17
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
コード例 #18
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
コード例 #19
0
    def test_convert_two_nodes_to_dict(self):
        """
        <violations>
          <entry>
            <string>checkstyle</string>
            <int>177</int>
          </entry>
          <entry>
            <string>cpd</string>
            <int>1155</int>
          </entry>
        </violations>
        """

        filename = self.resources + '/build.xml'
        parser = XpathParser().parser(filename)
        nodes = parser.content('//violations/entry').nodes
        self.assertEqual(4, len(nodes))

        result = parser.concat('./string', './int')
        self.assertEqual("{'pmd': '231', 'findbugs': '1397', 'cpd': '1155', 'checkstyle': '177'}", result.__str__())
コード例 #20
0
    def test_convert_attributes_to_dict(self):
        """
        <?xml version="1.0" encoding="UTF-8" standalone="no"?>
        <bsra>
             <service identify="DigiclassWsService" moduleName="LEXW-BsLexWeb-ws" name="DigiclassWsService" pathFile="" registered="false" reusability="exposto" type="WebService"/>
        </bsra>
        """

        filename = self.resources + '/bsra_services.xml'
        parser = XpathParser().parser(filename)
        nodes = parser.content('//bsra/service').nodes
        self.assertEqual(1, len(nodes))

        node = parser.attributes()[0]
        self.assertEqual('DigiclassWsService', node.get('identify'))
        self.assertEqual('LEXW-BsLexWeb-ws', node.get('moduleName'))
        self.assertEqual('DigiclassWsService', node.get('name'))
        self.assertEqual('', node.get('pathFile'))
        self.assertEqual('false', node.get('registered'))
        self.assertEqual('exposto', node.get('reusability'))
        self.assertEqual('WebService', node.get('type'))
コード例 #21
0
    def test_convert_attributes_to_dict(self):
        """
        <?xml version="1.0" encoding="UTF-8" standalone="no"?>
        <bsra>
             <service identify="DigiclassWsService" moduleName="LEXW-BsLexWeb-ws" name="DigiclassWsService" pathFile="" registered="false" reusability="exposto" type="WebService"/>
        </bsra>
        """

        filename = self.resources + '/bsra_services.xml'
        parser = XpathParser().parser(filename)
        nodes = parser.content('//bsra/service').nodes
        self.assertEqual(1, len(nodes))

        node = parser.attributes()[0]
        self.assertEqual('DigiclassWsService', node.get('identify'))
        self.assertEqual('LEXW-BsLexWeb-ws', node.get('moduleName'))
        self.assertEqual('DigiclassWsService', node.get('name'))
        self.assertEqual('', node.get('pathFile'))
        self.assertEqual('false', node.get('registered'))
        self.assertEqual('exposto', node.get('reusability'))
        self.assertEqual('WebService', node.get('type'))
コード例 #22
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)
コード例 #23
0
    def test_convert_two_nodes_to_dict(self):
        """
        <violations>
          <entry>
            <string>checkstyle</string>
            <int>177</int>
          </entry>
          <entry>
            <string>cpd</string>
            <int>1155</int>
          </entry>
        </violations>
        """

        filename = self.resources + '/build.xml'
        parser = XpathParser().parser(filename)
        nodes = parser.content('//violations/entry').nodes
        self.assertEqual(4, len(nodes))

        result = parser.concat('./string', './int')
        self.assertEqual(
            "{'pmd': '231', 'findbugs': '1397', 'cpd': '1155', 'checkstyle': '177'}",
            result.__str__())
コード例 #24
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)
コード例 #25
0
    def test_get_children_content_from_node_list(self):
        """
        <project>
            <hudson.tasks.Maven>
                <targets>String 1</targets>
                <mavenName>String 2</mavenName>
                <pom>String 3</pom>
                <usePrivateRepository>String 4</usePrivateRepository>
            </hudson.tasks.Maven>
            <hudson.tasks.Maven>
                <targets>String 1</targets>
                <mavenName>String 2</mavenName>
                <pom>String 3</pom>
                <usePrivateRepository>String 4</usePrivateRepository>
            </hudson.tasks.Maven>
        </project>
        """

        parser = XpathParser().parser(self.file)
        nodes = parser.content('//hudson.tasks.Maven').nodes
        self.assertEqual(6, len(nodes))

        result = parser.items()

        node1 = result[0]
        self.assertEqual('-e -U clean', node1.get('targets'))
        self.assertEqual('maven2.2.1', node1.get('mavenName'))
        self.assertEqual('LEXW-BsLexWeb-pom/pom.xml', node1.get('pom'))
        self.assertEqual('false', node1.get('usePrivateRepository'))

        node2 = result[1]
        self.assertEqual('-e -U clean install', node2.get('targets'))
        self.assertEqual('maven2.2.1', node2.get('mavenName'))
        self.assertEqual('LEXW-BsLexWeb-util/pom.xml', node2.get('pom'))
        self.assertEqual('false', node2.get('usePrivateRepository'))

        node3 = result[2]
        self.assertEqual('-e -U clean install', node3.get('targets'))
        self.assertEqual('maven2.2.1', node3.get('mavenName'))
        self.assertEqual('LEXW-BsLexWeb-ejbClient/pom.xml', node3.get('pom'))
        self.assertEqual('false', node3.get('usePrivateRepository'))

        node4 = result[3]
        self.assertEqual('-e -U clean install', node4.get('targets'))
        self.assertEqual('maven2.2.1', node4.get('mavenName'))
        self.assertEqual('LEXW-BsLexWeb-ejb/pom.xml', node4.get('pom'))
        self.assertEqual('false', node4.get('usePrivateRepository'))

        node5 = result[4]
        self.assertEqual(
            '-e -U -DskipTests=true install org.codehaus.mojo:was6-maven-plugin:1.2-SNAPSHOT:ejbdeploy -Dwas6.skip=true',
            node5.get('targets'))
        self.assertEqual('maven2.2.1', node5.get('mavenName'))
        self.assertEqual('LEXW-BsLexWeb-pom/pom.xml', node5.get('pom'))
        self.assertEqual('false', node5.get('usePrivateRepository'))

        node6 = result[5]
        self.assertEqual(
            '-e install -Pqualidade org.codehaus.mojo:was6-maven-plugin:1.2-SNAPSHOT:ejbdeploy -Dwas6.skip=true org.apache.maven.plugins:maven-javadoc-plugin:2.7:javadoc -Dmaven.javadoc.skip=true',
            node6.get('targets'))
        self.assertEqual('maven2.2.1', node6.get('mavenName'))
        self.assertEqual('LEXW-BsLexWeb-pom/pom.xml', node6.get('pom'))
        self.assertEqual('false', node6.get('usePrivateRepository'))
コード例 #26
0
 def test_return_empty_if_node_doesnot_exists(self):
     parser = XpathParser().parser(self.file)
     result = parser.content('//xpto').text()
     self.assertEqual('', result)
コード例 #27
0
    def test_open_valid_xml_file(self):
        parser = XpathParser().parser(self.file)

        assert parser.context
コード例 #28
0
 def test_return_empty_if_node_doesnot_exists(self):
     parser = XpathParser().parser(self.file)
     result = parser.content('//xpto').text()
     self.assertEqual('', result)
コード例 #29
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)