November 23, 2017


get_bandwith_image_by_date.rb

get_bandwith_image_by_date.rb
# Retrieve bandwith image by date.
#
# Use this method when needing a bandwidth image for a single guest. It will gather the correct input parameters
# for the generic graphing utility based on the date ranges
#
# Important manual pages:
# http://sldn.softlayer.com/reference/services/SoftLayer_Virtual_Guest/getBandwidthImageByDate
# http://sldn.softlayer.com/reference/datatypes/SoftLayer_Container_Bandwidth_GraphOutputs
#
# License: http://sldn.softlayer.com/article/License
# Author: SoftLayer Technologies, Inc. <sldn@softlayer.com>

require 'rubygems'
require 'softlayer_api'
require 'awesome_print'
require 'date'

# The virtual guest id of the virtual guest object that's going to be retrieved to retrieve a bandwith image.
virtual_guest_id = 6032256
# An example value of year that may be used to create a DateTime
year = 2016
# An example value of month that may be used to create a DateTime
month = 6
# An example value of day that may be used to create a DateTime
day = 27
# A value added to day to represent a number of days in the future.
days_in_advance = 7
# A DateTIme value used as a date start point
start_date_time = DateTime.new(year, month, day)
# A DateTIme value used as a date end point
end_date_time = DateTime.new(year, month, day + days_in_advance)
# either public or private
network_type = 'public'

SL_API_USERNAME = 'set me'
SL_API_KEY = 'set me'

client = SoftLayer::Client.new(username: SL_API_USERNAME,
                               api_key: SL_API_KEY)

virtual_guest_service = client['SoftLayer_Virtual_Guest']

begin
  container_bandwith_graph_outputs = virtual_guest_service.object_with_id(virtual_guest_id)
                                     .getBandwidthImageByDate(start_date_time, end_date_time, network_type)
  ap container_bandwith_graph_outputs
rescue StandardError => e
  p 'Error when executing the script...'
  $stdout.print(e.inspect)
end

Feedback?

If this article contains any error, or leaves any of your questions unanswered, please help us out by opening up a github issue.
Open an issue