Exemple #1
0
# -*- coding: utf-8 -*-
# @author: Janssen Lima - [email protected]
# ATEN??O: C?digo n?o est? funcional. Em desenvolvimento

from otrs.client import GenericTicketConnector
from otrs.objects import Ticket, Article, DynamicField

server_uri = 'http://localhost/'
webservice_name = 'IntegraZabbix'
client = GenericTicketConnector(server_uri, webservice_name)
user_login = '******'
password = '******'

client.user_session_register(user_login, password)

pega_ticket = client.ticket_search(State=1)

print len(pega_ticket)

pega_ticket = client.ticket_search(Body='<inserir_texto_procura>')

for tickets in pega_ticket:
    print "Ticket: ",tickets


pega_fechados = client.ticket_search(State='new')

df_searchId = DynamicField(Name='ZabbixIdTrigger', Value="13563", Operator='Like')
df_searchState = DynamicField(Name='ZabbixStateTrigger', Value="PROBLEM", Operator='Like')

busca_df=client.ticket_search(Queues='Zabbix', dynamic_fields=[df_searchId, df_searchState])
parser.add_argument('otrsuser', help="Username of OTRS user")
parser.add_argument('otrspass', help="Password of OTRS user")
parser.add_argument('zenossurl', help="URL of Zenoss server (ex. http://zenoss.mycompany.com:8080)")
parser.add_argument('zenossuser', help="Username of Zenoss user")
parser.add_argument('zenosspass', help="Password of Zenoss user")
parser.add_argument("--queue", help="OTRS Queue for Ticket", required=True)
parser.add_argument("--ownerid", help="OTRS Owner ID number for Ticket", required=True)
parser.add_argument("--type", help="OTRS Type of Ticket", required=True)
parser.add_argument("--eventfield", help="OTRS Dynamic Field for storing Zenoss Event ID", required=True)
args = parser.parse_args()

server_uri = args.otrsurl
webservice_name = 'GenericTicketConnector'
client = GenericTicketConnector(server_uri, webservice_name)

client.user_session_register(args.otrsuser,args.otrspass)

zenoss = Zenoss(args.zenossurl, args.zenossuser, args.zenosspass)

t_ids = client.ticket_search(Queues=args.queue, OwnerIDs=args.ownerid, Types=args.type, States='new')
for t_id in t_ids:
      ticket = client.ticket_get(t_id,get_dynamic_fields=True)
      for dfield in ticket.dynamicfields():
            if dfield.Name == args.eventfield:
               eventState = zenoss.get_event_detail(dfield.Value)['event'][0]['eventState']
               print "Open Ticket #" + str(t_id) + ", event " + dfield.Value + ": Current Zenoss event state is " + eventState
               if (eventState != 'New') and (eventState != 'Acknowledged') and (eventState != 'Suppressed'):
                  a = Article(Subject='Clearing orphaned ticket', Body='Orphaned ticket detected, event closed, ticket should have been auto-closed but was not for some reason. Closing ticket.', Charset='UTF8', MimeType='text/plain', TimeUnit='1')

                  t_upd = Ticket(State='closed successful')
                  print "Orphaned ticket detected. Closing ticket..."
Exemple #3
0
#!/usr/bin/env python

from otrs.client import GenericTicketConnector
from otrs.objects import Ticket, Article, DynamicField, Attachment

import yaml
config = yaml.safe_load(open("config.yml"))

server_uri = config['server']
webservice_name = 'GenericTicketConnector'
client = GenericTicketConnector(server_uri, webservice_name)

# user session
client.user_session_register(config['username'], config['password'])

# returns all tickets in queue Support
tickets = client.ticket_search(
    Queues = 'Support Queue',
    From = '{{term}}',
    To = '{{term}}',
    Cc = '{{term}}',
    Subject = '{{term}}',
    Body = '{{term}}',
    ContentSearch = 'OR',
    FullTextIndex = 1
)

print tickets