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.
# Code example of how to list virtual instances from a SoftLayer account.
# You can call the script from the command and provide the username you
# want to filter on. The script expects that you have the SoftLayer gem
# installed and have it configured with the credentials you'd like
# to use with SoftLayer.
# See https://github.com/softlayer/softlayer-ruby/blob/master/lib/softlayer/Config.rb#L11-L44.
#
# You can run the script with the username you'd like to check under
# the account you have configured:
# find_my_active_vms userid
#
# The output of the script is in a csv format with commas as the
# column separator.
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'] # table headers
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