TicketAbstractorClient
Client for accessing to a TicketAbstractor service.
Installation
Add this line to your application's Gemfile:
gem 'ticket_abstractor_client'
And then execute:
$ bundle
Or install it yourself as:
$ gem install ticket_abstractor_client
API
Upgrading
Since version 1.5.0, TicketAbstractorClient.initialize_client
returns an instance of TicketAbstractorClient::Base
instead of TicketAbstractorClient
class.
Usage
Initialize:
require 'ticket_abstractor_client'
without security token:
client = TicketAbstractorClient.initialize_client('http://ticket.abstractor.url')
with security token:
client = TicketAbstractorClient.initialize_client('http://ticket.abstractor.url', 'a94a8fe5ccb19ba61c4c0873d391e987982fbbd3')
Access clients:
client.jira
client.brouha
client.itrc
client.ilogger
client.sev_one
client.service_now
Jira
Get list of Jira endpoints:
client.jira.endpoints #=> { 'endpoint_name_1' => 'http://www.jira-endpoint.com', 'endpoint_name_2' => '... }
Get access to specific Jira instance:
client.jira.get_issue ... #=> default Jira instance (T&P)
client.jira('endpoint_name_1').get_issue ... #=> Jira at 'http://www.jira-endpoint.com'
Grab issue:
client.jira.get_issue 'IFS-123'
client.jira.get_issue_status 'IFS-123'
Get issues by filter:
jira_filter_id = 2145
client.jira.get_issues_by_filter jira_filter_id #=> [{ issue_1 }, { issue_2 }, ...]
client.jira.get_issues_by_filter jira_filter_id, page, per_page, show_total: true #=> { total: 2, issues: [...] }
Create issue (project, summary, description and issuetype fields are required):
= { project: "IFS", summary: "Summary", description: "Desc", issuetype: "Bug"}
client.jira.create_issue
Create issue with an attachment:
= { project: "IFS", summary: "Summary", description: "Desc", issuetype: "Bug"}
= File.new('file.png', 'rb')
client.jira.create_issue ,
Create issue using Jira params:
= { fields: { project: { key: "IFS" }, summary: "Summary", issuetype: { id: 82 } } }
= File.new('file.png', 'rb')
client.jira.raw_create_issue ,
Update issue (issuekey field is required):
client.jira.update_issue(issuekey: 'IFS-123', description: 'new description')
Attach the file to issue:
= File.new('file.png', 'rb')
client.jira.update_issue({ issuekey: 'IFS-123' }, )
Create incident (project, summary, description and issuetype fields are required):
= { project: "IFS", summary: "Summary", description: "Desc", issuetype: {id: "3"},
customfields: {
customfield_1: {id: "22"},
customfield_2: {value: "No Impact"}
}}
client.jira.create_tvx_issue
Add comment to the issue (issuekey and comment fields are required):
client.jira.add_comment(issuekey: 'IFS-123', comment: 'comment to ticket')
Add an actiity to the issue (issuekey, comment and opts fields are required): opts should containt { id:, display_name:, event_id:}
client.jira.add_activity(issuekey: 'IFS-123', comment: 'activity comment to ticket',
generator: {
id: 'https://intel.xcal.tv',
display_name: 'OIV'
},
event_id: '23456'
)
Brouha
Grab issue:
client.brouha.get_issue '12'
Create issue:
= {
severity: 'Severity 5',
title: 'incident title',
bridge: '123456789',
summary: 'incident description',
product: 'Xfinity Voice',
service: 'voicemail',
division: 'incident division',
desk: 'incident desk',
opened_by: 'incident manager',
start_time: 'incident start time'
}
client.brouha.create_issue
List products and services:
client.brouha.list_product_services
Update issue:
issue_key = 23
= {
id: 23,
alarm_url: 'http://server.domain/alarms/'
}
client.brouha.update_issue issue_key,
iTRC
Find apps:
client.itrc.list_apps
client.itrc.find_app 'itrc'
Find app_groups:
client.itrc.list_app_groups
client.itrc.find_app_group 'app-mgmt-tools'
Find business units:
client.itrc.list_business_units
client.itrc.find_business_unit 3
Find departments:
client.itrc.list_departments
client.itrc.find_department 4
ILogger
Grab incidents:
client.ilogger.get_incidents 'owner=brouha&incident_desk=ASD&limit=10&offset=0'
SevOne
Get data from graph:
## :graph => :data_sources is required
## :timespan => :start_time and :end_time is required
params = {
graph: {
data_sources: [
{ device_name: "ccprtr-br-a1-p", object_name: "ae1", indicator: "ifHCOutOctets" },
{ device_name: "ccprtr-br-a2-p", object_name: "ae1", indicator: "ifHCOutOctets" }
]
}
}
## query which fetch data for period(time in UNIX timestamp)
client.sev_one.report_get_data_from_graph(params.merge(timespan: { start_time: 1423242600.0, end_time: 1423242900.0 }))
## query which fetch data for last 5 minutes
client.sev_one.report_get_data_from_graph(params.merge(timespan: { simple_timespan: "past 5 minutes" }))
Get data from flowfalcon graph:
## :graph => :data_sources is required
## :timespan => :start_time and :end_time is required
params = {
graph: {
data_sources: [
{ device_name: "68.87.7.129" },
{ device_name: "68.87.7.130" }
]
}
}
## query which fetch data for period(time in UNIX timestamp)
client.sev_one.flowfalcon_get_data_from_graph(params.merge(timespan: { start_time: 1423242600.0, end_time: 1423242900.0 }))
Service Now
## get all incidents:
client.service_now.get_all_incidents(limit: '1000', offset: '0', table_name: 'incident')
# service_desk - is assigment_group in ServiceNow API. It should be escaped
# states - get incidents included in this states. It should be integers separated by comma
client.service_now.get_all_incidents(service_desk: 'T%26P+Prod+Support', states: '1,2,9,10,11')
# get incident:
# :incident_id is a required parameter
client.service_now.get_incident(incident_id: '', table_name: 'incident')
# create incident:
# :incident_params is a required parameter
client.service_now.create_incident(incident_params: {}, table_name: 'incident')
# update incident
# :incident_params and :sys_id is a required parameters
client.service_now.update_incident(incident_params: {}, sys_id: '', table_name: 'incident')
# get comments
# :incident_id is required parameter.
client.service_now.get_comments(incident_id: '', table_name: 'incident', display_value: false)
# get all assignment groups:
client.service_now.get_all_groups()
client.service_now.get_all_groups(query: 'activeIStrue', limit: '100', fields: 'name,sys_id')
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request