GithubHelp home page GithubHelp logo

isabella232 / remedy-tsi-bulkingestion-script Goto Github PK

View Code? Open in Web Editor NEW

This project forked from boundary/remedy-tsi-bulkingestion-script

0.0 0.0 0.0 42.73 MB

Script for ingestion of Remedy Incidents and Change tickets into Truesight Intelligence as events.

Java 100.00%

remedy-tsi-bulkingestion-script's Introduction

remedy-tsi-bulkingestion-script

Script for ingestion of historical Remedy Incidents and Change tickets into Truesight Intelligence as events.

Description.

This Script ingests historical Remedy incidents and change tickets into TSI. Based on the configuration present in the template(see in dist), this script reads the Remedy Incident & Change Tickets and after converting into a TSI event (based on definitions in eventDefinition), it ingests the events to TSI.

Prerequisite

1. Java Sdk 1.8
2. Maven*
3. Remedy Api Java sdk*
(*Only required if you want to contribute and build the code)

How to run ?

1. There is a pre-built jar shared at location dist. Please navigate to this directory.
$ cd dist
2. The incidentTemplate.json & changeTemplate.Json are the user input files.
  Change the incidentTemplate.json/changeTemplate.json configuration (based on description below)
3. Run jar file
$ java -jar remedy-tsi-bulkingestion-script-0.9.8.jar
4. Please read the output & provide further required choices.
NOTE:
1. You can also provide your choices as command line arguments.
Ex. $java -jar remedy-tsi-bulkingestion-script-0.9.8.jar <incident> <change> <exportincident> <exportchange> <silent> <retry> <loglevel>
2. You can enable the debug mode by having debug as command line parameter 
Ex. $java -jar remedy-tsi-bulkingestion-script-0.9.8.jar debug
3. The arguments can be used in any combination and any order.

Each argument has a following meaning and effect.

Argument Description
incident The script ingests the incidents.
Change The script ingests the change tickets.
exportincident The script exports the ingested incidents into a CSV file.
exportchange The script exports the ingested change tickets into a CSV file.
silent This argument will start the script in silent mode. It would start the ingestion based on the other arguments and does not prompt the user for further inputs.
retry The script dumps a csv file with the invalid events, retry argument makes the script to read from the csv and try again to ingest these events.
loglevel ex debug This sets the logging level

How to build this project?

Step 1: Obtain the Remedy Java API SDK jar.
Step 2: Add the jar to local m2 repository.
$ mvn install:install-file -DgroupId=com.bmc.arsys.api -DartifactId=api80_build002 -Dversion=8.0 -Dpackaging=jar -Dfile=<directorylocation>\api80_build002-8.0.jar -DgeneratePom=true
Step 3: Clone the integration library 
$ git clone https://github.com/boundary/remedy-tsi-integration-lib.
Step 4: Build it with Maven.
$ mvn clean compile install
Step 5: Clone this repository.
$ git clone https://github.com/boundary/remedy-tsi-bulkingestion-script.git
Step 6: Change the directory.
$ cd remedy-tsi-bulkingestion-script
Step 7: Run maven install.
$ mvn clean install
Step 8: You can find the build jar file as target/remedy-tsi-bulkingestion-script-0.9.8.jar

##### Note : You can also find a pre-built jar in dist folder

Configuration

The configuration file contains three major sections.

1. "config":{}
2. "eventDefinition":{}
3. "fieldDefinitionMap":{}

1) Config

The config element contains all the required configuration to run this script.

"config": {
  "remedyHostName":"xxxx"  					---> ARServer Host name
  "remedyPort":"0"  						---> ARServer TCP port
  "remedyUserName":"xxxx",  					---> ARServer UserName
  "remedyPassword":"xxxx",					---> Password
  "tsiApiToken":"xxxx",       					---> TSI API Token
  "startDateTime":"2016-12-31 00:00:00 UTC", 	 		---> Start Date for Remedy conditionFields
  "endDateTime":"2017-12-31 00:00:00 UTC", 			---> End date for remedy conditionFields
}

2) Event Definition

Payload field and value						Details/Comment
"eventDefinition": {						---> Event Definition
  "properties": {
    "app_id": "CHANGE_ME" 			---> Change the App_Id as Required
  }
 }

3) Field Definition Map

There are several Field Definitions/ Placeholder definitions already available by default(see IncidentDefaultTemplate & ChangeDefaultTemplate ).

How to add a Field definition and map the property to eventDefinition?

Add a definition as a property of the "fieldDefinitionMap"

"fieldDefinitionMap":{
	....
	"@CUSTOMFIELD": {
			"fieldId":1000000162,
			"valueMap":{
				"1000": "Critical",
				"2000": "High",
				"3000": "Medium",
				"4000": "Low"
			}
		},

Use the definition key as a value of the property of eventDefinition.properties. Example

{
"eventDefinition": {						  
		"properties": {
			"app_id": "Remedy Ingestion script",
			"CustomFieldName":"@CUSTOMFIELD"		// Add property like this
		}
 },
 "fieldDefinitionMap":{
 	...
	 "@CUSTOMFIELD": {
			"fieldId":1000000162,
			"valueMap":{
				"1000": "Critical",
				"2000": "High",
				"3000": "Medium",
				"4000": "Low"
			}
		}
	}
}
  1. The placeholder definition contains the Remedy fieldId , which defines that this fieldId's value from Remedy entry will be used in place of this placeholder.
  1. If valueMap is present in the definition (If it is a selection field) its value would be used from valueMap otherwise the Remedy value will be used.

Frequently Asked Questions

Q1. Where should I input the configuration details ?

Answer: You should open the folder dist and input the parameters in the config and change the app_id with your App Id. The JSON templates in ./dist folder are the User Template which are the script configuration file.

Q2. Why there is no property mapping (apart from app_id) in the incidentTemplate/changeTemplate? What happens if the script is executed with only app_id in the properties?

Answer: There is a set of default fields(ref- ./templates/incidentDefaultTemplate.json & ./templates/changeDefaultTemplate) which are loaded and used along with app_id if the incidentTemplate/changeTemplate (User Templates) contains app_id as the only property.

Q3. How can I add/remove/change the properties mapped in the template?

Answer: If the user template has more property than app_id, then script loads & uses only the properties mapped in the User Template. It completely ignores/overwrites the default property mapping. So if you want to add/remove/update the property mapping, you can take the default templates(see in ./template/*) as sample and copy the JSON content to the user template after making required changes.

Q4. I want to contribute to the project. How do I obtain the Remedy Api Sdk jar ?

Answer: You can contact Remedy or Truesight Intelligence team to get this dependency.

remedy-tsi-bulkingestion-script's People

Contributors

vitiwari avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.