NAME
RightScale::Query - Query RightScale for server instances
VERSION
version 0.201
SYNOPSIS
Query the RightScale service for information about server instances. It can be used to query for other objects, but at this stage it only provides a helper function to find server instances
use RightScale::Query;
# Package Globals
$RightScale::Query::api_url = 'https://us-4.rightscale.com/api';
$RightScale::Query::internet_proxy = 'http://proxy.example.com';
$RightScale::Query::internet_proxy_timeout = 30;
# Get an access token
my $refresh_token = 'afd983762efabcd9823209cbdefa9819832dcbea';
my $access_token = rs_get_access_token( $refresh_token );
# Check whether we can find the instance
my $instance_id = $server_data->{'instance_id'};
my $rs_cloud_id = $server_data->{'rs_cloud_id'};
my $rs_account_id = $server_data->{'rs_account_id'};
my $instance_details = rs_find_instance( $instance_id, $rs_cloud_id, $access_token );
GLOBAL VARIABLES
$RightScale::Query::api_url
needs to be set to match the URL of the RightScale API.
These variables can be set if you need to pass through a proxy (these are passed to LWP::UserAgent):
RightScale::Query::internet_proxy
- The hostname of the proxy serverRightScale::Query::internet_proxy_timeout
- The proxy timeout
EXPORTED FUNCTIONS
rs_get_access_token
This provides the RightScale temporary access token when the refresh token is provided
my $access_token = rs_get_access_token( $refresh_token );
run_rs_query
Connect to the RightScale API, run a query and return the result
my $instance_id = $server_data->{'instance_id'};
my $form = {
"filter[]" => "resource_uid==$instance_id",
};
my $headers = HTTP::Headers->new(
'X-API-Version' => '1.5',
'Authorization' => "Bearer $access_token",
);
my $rs_cloud_id = $server_data->{'rs_cloud_id'};
my $path = "clouds/$rs_cloud_id/instances";
my $instance_request = run_rs_query( $headers, $form, $path, "GET" );
This is a low level function that allows most queries to be constructed. This particular example if wrapped up by the rs_find_instance
function.
rs_find_instance
Look for the specified instance in RightScale, if it's found we will have a hash array of data about the instance, if not found - the hash will be undef.
# Check whether we can find the instance
my $instance_id = $server_data->{'instance_id'};
my $rs_cloud_id = $server_data->{'rs_cloud_id'};
my $rs_account_id = $server_data->{'rs_account_id'};
my $instance_details = rs_find_instance( $instance_id, $rs_cloud_id, $access_token );
BUGS/FEATURES
This module should be converted to be OO, but it's not actively being using anymore, so incentive is low to rewrite, but I want make it available for others anyway.
Please report any bugs or feature requests in the issues section of GitHub: https://github.com/Q-Technologies/perl-Log-MixedColor. Ideally, submit a Pull Request.
AUTHOR
Matthew Mallard <mqtech@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2019 by Matthew Mallard.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.