Ejemplo n.º 1
0
            ticket_id = None
            if tid_match and (len(tid_match.groups()) >= 1):
                ticket_id = tid_match.group(1)

            if jira_issue.fields.assignee:
                ticket_acted_upon = True
                break

            elif (not rt2jira_regex.search(existing_comment.body)) and action_match and (len(action_match.groups()) >= 1) and ('Correspondence added' in action_match.group(1) or 'Status changed' in action_match.group(1) or 'Taken by' in action_match.group(1) or (jira_issue.fields.customfield_16300 != ticket_id and 'Ticket created by' in action_match.group(1))):
                logger.info('Ticket (' + jira_issue.key + ') was acted upon')
                syslog.syslog(syslog.LOG_INFO, 'Ticket (' + jira_issue.key + ') was acted upon')
                ticket_acted_upon = True
                break

        if ticket_acted_upon:
            resolve(jira_issue, config.get('jira', 'resolve_resolution_name'), 'Auto resolving ticket after ' + config.get('jira', 'auto_resolve_after_days') + ' days, as it appears to be acted upon.  Please reopen if this ticket is still active.')
        else:
            resolve(jira_issue, 'Task Dropped', 'Task dropped due to inactivity after ' + config.get('jira', 'auto_resolve_after_days') + ' days.  Please reopen if further action is still required.')

except JIRAError as e:
    logger.error('JIRA processing error occurred.')
    syslog.syslog(syslog.LOG_ERR, 'JIRA processing error occurred.')
    logger.error(e)
    syslog.syslog(syslog.LOG_ERR, e)
    sys.exit(1)
except:
    logger.error('Unknown processing error occurred.')
    syslog.syslog(syslog.LOG_ERR, 'Unknown processing error occurred.')
    sys.exit(1)

Ejemplo n.º 2
0
        if sanitized_summary:
            logger.debug('JQL Search Terms: ' + sanitized_summary)
            syslog.syslog(syslog.LOG_DEBUG, 'JQL Search Terms: ' + sanitized_summary)
   
            # Check if JIRA ticket already exists.
            related_jira_query = 'key != ' + jira_issue.key + ' AND project = ' + config.get('jira', 'project') + ' AND component = "' + config.get('jira', 'component') + '" AND text ~ "' + sanitized_summary + '" ORDER BY updated DESC'
            related_jira_results = jira.search_issues('level IS EMPTY AND ' + related_jira_query, maxResults=config.getint('jira', 'auto_reply_max_results'))

        # Recent search results.
        recent_jira_query = 'key != ' + jira_issue.key + ' AND project = ' + config.get('jira', 'project') + ' AND component = "' + config.get('jira', 'component') + '" ORDER BY created DESC'
        recent_jira_results = jira.search_issues('level IS EMPTY AND ' + recent_jira_query, maxResults=config.getint('jira', 'auto_reply_max_results'))

        # Construct message to send to the requestors.
        template_issue = jira.issue(config.get('jira', 'auto_reply_template_ticket'))
        if not template_issue:
            logger.error('Unable to find template issue specified: ' + config.get('jira', 'auto_reply_template_ticket'))
            syslog.syslog(syslog.LOG_ERR, 'Unable to find template issue specified: ' + config.get('jira', 'auto_reply_template_ticket'))
            sys.exit(1)

        if not related_jira_query:
            related_jira_query = ""

        if not recent_jira_query:
            recent_jira_query = ""

        reply_message = template_issue.fields.description % {"jira_url_prefix": config.get('jira', 'jira_url_prefix'), "issue_key": jira_issue.key, "issue_summary": jira_issue.fields.summary, "related_results": format_search_results(related_jira_results), "recent_results": format_search_results(recent_jira_results), "related_query": quote_plus(related_jira_query), "recent_query": quote_plus(recent_jira_query)}

        if len(requestors) > 0:
            cc_addresses = ', '.join(list(requestors))
            logger.debug('Sending auto-reply to (' + cc_addresses + ') for JIRA ticket (' + jira_issue.key + ')')
            syslog.syslog(syslog.LOG_DEBUG, 'Sending auto-reply to (' + cc_addresses + ') for JIRA ticket (' + jira_issue.key + ')')
Ejemplo n.º 3
0
                'level IS EMPTY AND ' + related_jira_query,
                maxResults=config.getint('jira', 'auto_reply_max_results'))

        # Recent search results.
        recent_jira_query = 'key != ' + jira_issue.key + ' AND project = ' + config.get(
            'jira', 'project') + ' AND component = "' + config.get(
                'jira', 'component') + '" ORDER BY created DESC'
        recent_jira_results = jira.search_issues(
            'level IS EMPTY AND ' + recent_jira_query,
            maxResults=config.getint('jira', 'auto_reply_max_results'))

        # Construct message to send to the requestors.
        template_issue = jira.issue(
            config.get('jira', 'auto_reply_template_ticket'))
        if not template_issue:
            logger.error('Unable to find template issue specified: ' +
                         config.get('jira', 'auto_reply_template_ticket'))
            syslog.syslog(
                syslog.LOG_ERR, 'Unable to find template issue specified: ' +
                config.get('jira', 'auto_reply_template_ticket'))
            sys.exit(1)

        if not related_jira_query:
            related_jira_query = ""

        if not recent_jira_query:
            recent_jira_query = ""

        reply_message = template_issue.fields.description % {
            "jira_url_prefix": config.get('jira', 'jira_url_prefix'),
            "issue_key": jira_issue.key,
            "issue_summary": jira_issue.fields.summary,
Ejemplo n.º 4
0
                logger.info('Ticket (' + jira_issue.key + ') was acted upon')
                syslog.syslog(syslog.LOG_INFO,
                              'Ticket (' + jira_issue.key + ') was acted upon')
                ticket_acted_upon = True
                break

        if ticket_acted_upon:
            resolve(
                jira_issue, config.get('jira', 'resolve_resolution_name'),
                'Auto resolving ticket after ' +
                config.get('jira', 'auto_resolve_after_days') +
                ' days, as it appears to be acted upon.  Please reopen if this ticket is still active.'
            )
        else:
            resolve(
                jira_issue, 'Task Dropped',
                'Task dropped due to inactivity after ' +
                config.get('jira', 'auto_resolve_after_days') +
                ' days.  Please reopen if further action is still required.')

except JIRAError as e:
    logger.error('JIRA processing error occurred.')
    syslog.syslog(syslog.LOG_ERR, 'JIRA processing error occurred.')
    logger.error(e)
    syslog.syslog(syslog.LOG_ERR, e)
    sys.exit(1)
except:
    logger.error('Unknown processing error occurred.')
    syslog.syslog(syslog.LOG_ERR, 'Unknown processing error occurred.')
    sys.exit(1)