Every once in awhile I need to create data for my Kinetic Calendar demo world.
(A Calendar demo with no data - is boring!!!!)
I use the Kinetic Ruby API to create the data. Here is the script.
I thought I would share this - hopefully it is inspiring to anybody who needs
to make sample data.
(Highlevel - I am creating 300 changes over 90 days with random cti, groups,
ci, etc...)
Again -- if anybody is interested in Ruby and Remedy -- let me know -- we have
a nice library I can give you.
(oh - and BTW - I do this all on my Mac***)
require "rubygems"
require "kinetic/link"
$klink_env = "demo"
anchor_time = Time.now.to_i
num_days = 90
max_change_length_hours = 8
min_change_length_minutes = 15
num_changes_to_create = 300
form = "KS_SAMPLE_Change"
fm = Hash.new
fm['Request ID'] = "1"
fm['Status History'] = "15"
fm['instanceId'] = "179"
fm['Submitter'] = "2"
fm['Create Date'] = "3"
fm['Assigned To'] = "4"
fm['Last Modified By'] = "5"
fm['Modified Date'] = "6"
fm['Status'] = "7"
fm['Change Name'] = "700000050"
fm['Category'] = "700000051"
fm['Type'] = "700000052"
fm['Item'] = "700000053"
fm['Risk'] = "700000060"
fm['Priority'] = "700000061"
fm['Impact'] = "700000062"
fm['Group Assigned'] = "700000071"
fm['Person Assigned'] = "700000072"
fm['Start Date/Time'] = "700000081"
fm['End Date/Time'] = "700000082"
fm['Link Id'] = "700111111"
fm['URL'] = "700503509"
fm['Company'] = "720000000"
fm['Configuration_Item'] = "700002008"
fm['Short Description'] = "8"
categories = Array.new
categories << ["Software","Microsoft Office","Install"]
categories << ["Software","Microsoft Office","Remove"]
categories << ["Software","Microsoft Office","Upgrade"]
categories << ["Software","Adobe Reader","Install"]
categories << ["Software","Adobe Reader","Remove"]
categories << ["Software","Adobe Reader","Upgrade"]
categories << ["Hardware","Additional Disk","Install"]
categories << ["Hardware","Additional Disk","Remove"]
categories << ["Hardware","Memory","Install"]
categories << ["Hardware","Memory","Remove"]
categories << ["Database","Admin","Restore"]
categories << ["Database","Admin","Performance Tune"]
categories << ["Database","Admin","Snapshot"]
categories << ["Database","Admin","Failover"]
categories << ["Network","Router","Install"]
categories << ["Network","Router","Remove"]
categories << ["Network","Router","Upgrade"]
categories << ["Network","DNS","Failover"]
categories << ["Network","DNS","Backup"]
categories << ["Network","DNS","Register name"]
categories << ["Network","DNS","Remove name"]
categories << ["SAN","Additional Disk","Install"]
categories << ["SAN","Additional Disk","Remove"]
categories << ["SAN","Admin","Snapshot"]
categories << ["SAN","Admin","Failover"]
categories << ["Mainframe","Batch Job","Start"]
categories << ["Mainframe","Batch Job","Modify"]
categories << ["Mainframe","Maintenance","Snapshot"]
categories << ["Mainframe","Maintenance","Failover"]
groups = Array.new
groups << ["Network","Joe Blow"]
groups << ["Network","Joe Smith"]
groups << ["Network","Mike Jones"]
groups << ["Network","Sally Smythe"]
groups << ["Network","Chris Johnson"]
groups << ["Network","Marie Metso"]
groups << ["Admin","Sally Smythe"]
groups << ["Admin","Chris Johnson"]
groups << ["Admin","Marie Metso"]
groups << ["Desktop","Sally Smythe"]
groups << ["Desktop","Chris Jones"]
groups << ["Desktop","Heather Sterns"]
companies = ["ACME","Sithco","Big Massive Company","Xyz Enterprises"]
configuration_items = ["Rabbit","Fox","Squirrel","Eel","Platypus"]
risks = ["Critical","Minor","Standard"]
priorities = ["Critical","Minor","Standard"]
impacts = ["Low","Medium","High"]
statuses = ["New","Assigned","Fixed","Rejected","Closed"]
num_changes_to_create.times do
category,type,item = categories[rand(categories.size)]
configuration_item = configuration_items[rand(configuration_items.size)]
company = companies[rand(companies.size)]
group_assigned,person_assigned = groups[rand(groups.size)]
group_requested, person_requested = groups[rand(groups.size)]
risk = risks[rand(risks.size)]
priority = priorities[rand(priorities.size)]
impact = impacts[rand(impacts.size)]
status = statuses[rand(statuses.size)]
time_offset = rand(num_days*24*60*60)
seconds_long = [rand(max_change_length_hours)*60*60,
min_change_length_minutes *60].max
# The 3600 stuff converts it to an hour start (not 5:33:22 - but just 5)
start_time_seconds = (((anchor_time + time_offset)/3600).to_i)*3600
end_time_seconds = start_time_seconds + seconds_long
start_time = Time.at(start_time_seconds).strftime("%Y-%m-%dT%H:%M:00")
end_time = Time.at(end_time_seconds).strftime("%Y-%m-%dT%H:%M:00")
change_name = "#{configuration_item} #{item}"
description = "Need to #{item} for ci #{configuration_item},
#{person_requested} says this is a #{risk} risk."
change = {
fm['Submitter'] => person_requested,
fm['Status'] => status,
fm['Change Name'] => change_name,
fm['Category'] => category,
fm['Type'] => type,
fm['Item'] => item,
fm['Risk'] => risk,
fm['Priority'] => priority,
fm['Impact'] => impact,
fm['Group Assigned'] => group_assigned,
fm['Person Assigned'] => person_assigned,
fm['Start Date/Time'] => start_time,
fm['End Date/Time'] => end_time,
fm['URL'] => "http://www.kineticdata.com",
fm['Company'] => company,
fm['Configuration_Item'] => configuration_item,
fm['Short Description'] => description
}
puts Kinetic::Link.create(form,change)
end
--
John Sundberg
Kinetic Data, Inc.
"Building a Better Service Experience"
Recipient of:
WWRUG10 Best Customer Service/Support Award
WWRUG09 Innovator of the Year Award
[email protected]
651.556.0930 I www.kineticdata.com
_______________________________________________________________________________
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
attend wwrug11 www.wwrug.com ARSList: "Where the Answers Are"