Find active VMs of specified creator
Retrieves virtual instances (VSIs) belonging to the specified creator. If no user is specified, it uses the username from the SL Client instance.
require 'softlayer_api'
require 'vine'
require 'csv'
client = SoftLayer::Client.new
account_service = client['Account']
object_mask = 'mask[id,fullyQualifiedDomainName,primaryIpAddress,createDate,billingItem[orderItem[description,order[userRecord[username],id]]]]'
USER_ID = ARGV[0] || client.username
vms = account_service.object_mask(object_mask).getVirtualGuests
csv_string = CSV.generate do |csv|
csv << ['VM ID', 'Host', 'Public IP', 'Create Date']
vms.each do |vm|
creator = vm.access('billingItem.orderItem.order.userRecord.username')
next unless creator == USER_ID
csv << [vm['id'], vm['fullyQualifiedDomainName'], vm['primaryIpAddress'], vm['createDate']]
end
end
puts csv_string