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

john.sundb...@kineticdata.com
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"

Reply via email to