class RightScaleCLI::Refresh
Represents an API token refresh
Public Class Methods
new(*args)
click to toggle source
namespace :volumes
Calls superclass method
# File lib/rightscale_cli/refresh.rb, line 30 def initialize(*args) super # @client = RightScaleCLI::Client.new(options) @logger = RightScaleCLI::Logger.new @config = RightScaleCLI::Config.new @directives = @config.directives end
Public Instance Methods
token()
click to toggle source
# File lib/rightscale_cli/refresh.rb, line 40 def token token_endpoint = @directives[:token_endpoint] refresh_token = @directives[:refresh_token] @logger.info "Requesting API token from #{token_endpoint}" uri = URI.parse(token_endpoint) https = Net::HTTP.new(uri.host, uri.port) https.set_debug_output($stdout) if options[:debug] https.use_ssl = true request = Net::HTTP::Post.new(uri.path) request['X-API-Version'] = '1.5' request.set_form_data(grant_type: 'refresh_token', refresh_token: refresh_token) response = https.request(request) access_token = JSON.parse(response.body)['access_token'] @directives[:access_token] = access_token File.open(@config.config_path, 'w') {|f| f.write(ERB.new(IO.read(@config.template_path)).result(binding)) } @logger.info 'API token refreshed.' end