Name : perl-VM-EC2
| |
Version : 1.25
| Vendor : obs://build_opensuse_org/devel:languages:perl
|
Release : 118.1
| Date : 2016-09-05 00:42:29
|
Group : Development/Libraries/Perl
| Source RPM : perl-VM-EC2-1.25-118.1.src.rpm
|
Size : 1.36 MB
| |
Packager : (none)
| |
Summary : Control the Amazon EC2 and Eucalyptus Clouds
|
Description :
This is an interface to the 2013-07-15 version of the Amazon AWS API (http://aws.amazon.com/ec2). It was written provide access to the new tag and metadata interface that is not currently supported by Net::Amazon::EC2, as well as to provide developers with an extension mechanism for the API. This library will also support the Eucalyptus open source cloud (http://open.eucalyptus.com).
The main interface is the VM::EC2 object, which provides methods for interrogating the Amazon EC2, launching instances, and managing instance lifecycle. These methods return the following major object classes which act as specialized interfaces to AWS:
VM::EC2::BlockDevice -- A block device VM::EC2::BlockDevice::Attachment -- Attachment of a block device to an EC2 instance VM::EC2::BlockDevice::EBS -- An elastic block device VM::EC2::BlockDevice::Mapping -- Mapping of a virtual storage device to a block device VM::EC2::BlockDevice::Mapping::EBS -- Mapping of a virtual storage device to an EBS block device VM::EC2::Group -- Security groups VM::EC2::Image -- Amazon Machine Images (AMIs) VM::EC2::Instance -- Virtual machine instances VM::EC2::Instance::Metadata -- Access to runtime metadata from running instances VM::EC2::Region -- Availability regions VM::EC2::Snapshot -- EBS snapshots VM::EC2::Tag -- Metadata tags
In addition, there is a high level interface for interacting with EC2 servers and volumes, including file transfer and remote shell facilities:
VM::EC2::Staging::Manager -- Manage a set of servers and volumes. VM::EC2::Staging::Server -- A staging server, with remote shell and file transfer facilities. VM::EC2::Staging::Volume -- A staging volume with the ability to copy itself between availability zones and regions.
and a few specialty classes:
VM::EC2::Security::Token -- Temporary security tokens for granting EC2 access to non-AWS account holders. VM::EC2::Security::Credentials -- Credentials for use by temporary account holders. VM::EC2::Security::Policy -- Policies that restrict what temporary account holders can do with EC2 resources. VM::EC2::Security::FederatedUser -- Account name information for temporary account holders.
Lastly, there are several utility classes:
VM::EC2::Generic -- Base class for all AWS objects VM::EC2::Error -- Error messages VM::EC2::Dispatch -- Maps AWS XML responses onto perl object classes VM::EC2::ReservationSet -- Hidden class used for describe_instances() request; The reservation Ids are copied into the Instance object.
There is also a high-level API called \"VM::EC2::Staging::Manager\" for managing groups of staging servers and volumes which greatly simplifies the task of creating and updating instances that mount multiple volumes. The API also provides a one-line command for migrating EBS-backed AMIs from one zone to another. See VM::EC2::Staging::Manager.
The interface provided by these modules is based on that described at http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/. The following caveats apply:
1) Not all of the Amazon API is currently implemented. Specifically, a handful calls dealing with cluster management and VM importing are missing. See L< /MISSING METHODS> for a list of all the unimplemented API calls. Volunteers to fill in these gaps are most welcome!
2) For consistency with common Perl coding practices, method calls are lowercase and words in long method names are separated by underscores. The Amazon API prefers mixed case. So in the Amazon API the call to fetch instance information is \"DescribeInstances\", while in VM::EC2, the method is \"describe_instances\". To avoid annoyance, if you use the mixed case form for a method name, the Perl autoloader will automatically translate it to underscores for you, and vice-versa; this means you can call either $ec2->describe_instances() or $ec2->DescribeInstances().
3) Named arguments passed to methods are all lowercase, use underscores to separate words and start with hyphens. In other words, if the AWS API calls for an argument named \"InstanceId\" to be passed to the \"DescribeInstances\" call, then the corresponding Perl function will look like:
$instance = $ec2->describe_instances(-instance_id=>\'i-12345\')
In most cases automatic case translation will be performed for you on arguments. So in the previous example, you could use -InstanceId as well as -instance_id. The exception is when an absurdly long argument name was replaced with an abbreviated one as described below. In this case, you must use the documented argument name.
In a small number of cases, when the parameter name was absurdly long, it has been abbreviated. For example, the \"Placement.AvailabilityZone\" parameter has been represented as -placement_zone and not -placement_availability_zone. See the documentation for these cases.
4) For each of the describe_foo() methods (where \"foo\" is a type of resource such as \"instance\"), you can fetch the resource by using their IDs either with the long form:
$ec2->describe_foo(-foo_id=>[\'a\',\'b\',\'c\']),
or a shortcut form:
$ec2->describe_foo(\'a\',\'b\',\'c\');
Both forms are listed in the headings in the documentation.
5) When the API calls for a list of arguments named Arg.1, Arg.2, then the Perl interface allows you to use an anonymous array for the consecutive values. For example to call describe_instances() with multiple instance IDs, use:
AATTi = $ec2->describe_instances(-instance_id=>[\'i-12345\',\'i-87654\'])
6) All Filter arguments are represented as a -filter argument whose value is an anonymous hash:
AATTi = $ec2->describe_instances(-filter=>{architecture=>\'i386\', \'tag:Name\' =>\'WebServer\'})
If there are no other arguments you wish to pass, you can omit the -filter argument and just pass a hashref:
AATTi = $ec2->describe_instances({architecture=>\'i386\', \'tag:Name\' =>\'WebServer\'})
For any filter, you may represent multiple OR arguments as an arrayref:
AATTi = $ec2->describe-instances({\'instance-state-name\'=>[\'stopped\',\'terminated\']})
When adding or removing tags, the -tag argument uses the same syntax.
7) The tagnames of each XML object returned from AWS are converted into methods with the same name and typography. So the < privateIpAddress> tag in a DescribeInstancesResponse, becomes:
$instance->privateIpAddress
You can also use the more Perlish form -- this is equivalent:
$instance->private_ip_address
Methods that correspond to complex objects in the XML hierarchy return the appropriate Perl object. For example, an instance\'s blockDeviceMapping() method returns an object of type VM::EC2::BlockDevice::Mapping.
All objects have a fields() method that will return the XML tagnames listed in the AWS specifications.
AATTfields = sort $instance->fields;
8) Whenever an object has a unique ID, string overloading is used so that the object interpolates the ID into the string. For example, when you print a VM::EC2::Volume object, or use it in another string context, then it will appear as the string \"vol-123456\". Nevertheless, it will continue to be usable for method calls.
($v) = $ec2->describe_volumes(); print $v,\"\ \"; # prints as \"vol-123456\" $zone = $v->availabilityZone; # acts like an object
9) Many objects have convenience methods that invoke the AWS API on your behalf. For example, instance objects have a current_status() method that returns the run status of the object, as well as start(), stop() and terminate() methods that control the instance\'s lifecycle.
if ($instance->current_status eq \'running\') { $instance->stop; }
10) Calls to AWS that have failed for one reason or another (invalid arguments, communications problems, service interruptions) will return undef and set the VM::EC2->is_error() method to true. The error message and its code can then be recovered by calling VM::EC2->error.
$i = $ec2->describe_instance(\'i-123456\'); unless ($i) { warn \'Got no instance. Message was: \',$ec2->error; }
You may also elect to raise an exception when an error occurs. See the new() method for details.
|
RPM found in directory: /packages/linux-pbone/ftp5.gwdg.de/pub/opensuse/repositories/devel:/languages:/perl:/CPAN-V/openSUSE_13.2/noarch |
Hmm ... It's impossible ;-) This RPM doesn't exist on any FTP server
Provides :
perl(RetryTimer)
perl(VM::EC2)
perl(VM::EC2)
perl(VM::EC2::ASG)
perl(VM::EC2::AccountAttributes)
perl(VM::EC2::AvailabilityZone)
perl(VM::EC2::BlockDevice)
perl(VM::EC2::BlockDevice::Attachment)
perl(VM::EC2::BlockDevice::EBS)
perl(VM::EC2::BlockDevice::Mapping)
perl(VM::EC2::BlockDevice::Mapping::EBS)
perl(VM::EC2::CondVar)
perl(VM::EC2::Dispatch)
perl(VM::EC2::ELB)
perl(VM::EC2::ELB::BackendServerDescription)
perl(VM::EC2::ELB::HealthCheck)
perl(VM::EC2::ELB::InstanceState)
perl(VM::EC2::ELB::Listener)
perl(VM::EC2::ELB::ListenerDescription)
perl(VM::EC2::ELB::Policies)
perl(VM::EC2::ELB::Policies::AppCookieStickinessPolicy)
perl(VM::EC2::ELB::Policies::LBCookieStickinessPolicy)
perl(VM::EC2::ELB::PolicyAttribute)
perl(VM::EC2::ELB::PolicyAttributeType)
perl(VM::EC2::ELB::PolicyDescription)
perl(VM::EC2::ELB::PolicyTypeDescription)
perl(VM::EC2::ElasticAddress)
perl(VM::EC2::Error)
perl(VM::EC2::Generic)
perl(VM::EC2::Group)
perl(VM::EC2::Image)
perl(VM::EC2::Image::LaunchPermission)
perl(VM::EC2::Instance)
perl(VM::EC2::Instance::ConsoleOutput)
perl(VM::EC2::Instance::IamProfile)
perl(VM::EC2::Instance::Metadata)
perl(VM::EC2::Instance::MonitoringState)
perl(VM::EC2::Instance::PasswordData)
perl(VM::EC2::Instance::Placement)
perl(VM::EC2::Instance::Set)
perl(VM::EC2::Instance::State)
perl(VM::EC2::Instance::State::Change)
perl(VM::EC2::Instance::State::Reason)
perl(VM::EC2::Instance::Status)
perl(VM::EC2::Instance::Status::Details)
perl(VM::EC2::Instance::Status::Event)
perl(VM::EC2::Instance::StatusItem)
perl(VM::EC2::KeyPair)
perl(VM::EC2::LaunchConfiguration)
perl(VM::EC2::NetworkInterface)
perl(VM::EC2::NetworkInterface::Association)
perl(VM::EC2::NetworkInterface::Attachment)
perl(VM::EC2::NetworkInterface::PrivateIpAddress)
perl(VM::EC2::ParmParser)
perl(VM::EC2::PlacementGroup)
perl(VM::EC2::ProductCode)
perl(VM::EC2::REST::ami)
perl(VM::EC2::REST::autoscaling)
perl(VM::EC2::REST::customer_gateway)
perl(VM::EC2::REST::devpay)
perl(VM::EC2::REST::dhcp)
perl(VM::EC2::REST::ebs)
perl(VM::EC2::REST::elastic_ip)
perl(VM::EC2::REST::elastic_load_balancer)
perl(VM::EC2::REST::elastic_network_interface)
perl(VM::EC2::REST::general)
perl(VM::EC2::REST::instance)
perl(VM::EC2::REST::internet_gateway)
perl(VM::EC2::REST::keys)
perl(VM::EC2::REST::monitoring)
perl(VM::EC2::REST::network_acl)
perl(VM::EC2::REST::placement_group)
perl(VM::EC2::REST::private_ip)
perl(VM::EC2::REST::reserved_instance)
perl(VM::EC2::REST::route_table)
perl(VM::EC2::REST::security_group)
perl(VM::EC2::REST::security_token)
perl(VM::EC2::REST::spot_instance)
perl(VM::EC2::REST::subnet)
perl(VM::EC2::REST::tag)
perl(VM::EC2::REST::vm_export)
perl(VM::EC2::REST::vm_import)
perl(VM::EC2::REST::vpc)
perl(VM::EC2::REST::vpn)
perl(VM::EC2::REST::vpn_gateway)
perl(VM::EC2::REST::windows)
perl(VM::EC2::REST::zone)
perl(VM::EC2::Region)
perl(VM::EC2::ReservationSet)
perl(VM::EC2::ReservedInstance)
perl(VM::EC2::ReservedInstance::Offering)
perl(VM::EC2::Security::Credentials)
perl(VM::EC2::Security::FederatedUser)
perl(VM::EC2::Security::Policy)
perl(VM::EC2::Security::Token)
perl(VM::EC2::SecurityGroup)
perl(VM::EC2::SecurityGroup::GroupPermission)
perl(VM::EC2::SecurityGroup::IpPermission)
perl(VM::EC2::Snapshot)
perl(VM::EC2::Snapshot::CreateVolumePermission)
perl(VM::EC2::Spot::DatafeedSubscription)
perl(VM::EC2::Spot::InstanceRequest)
perl(VM::EC2::Spot::LaunchSpecification)
perl(VM::EC2::Spot::PriceHistory)
perl(VM::EC2::Spot::Status)
perl(VM::EC2::Staging::Manager)
perl(VM::EC2::Staging::Server)
perl(VM::EC2::Staging::Volume)
perl(VM::EC2::Tag)
perl(VM::EC2::VPC)
perl(VM::EC2::VPC::CustomerGateway)
perl(VM::EC2::VPC::DhcpOptions)
perl(VM::EC2::VPC::InternetGateway)
perl(VM::EC2::VPC::InternetGateway::Attachment)
perl(VM::EC2::VPC::NetworkAcl)
perl(VM::EC2::VPC::NetworkAcl::Association)
perl(VM::EC2::VPC::NetworkAcl::Entry)
perl(VM::EC2::VPC::Route)
perl(VM::EC2::VPC::RouteTable)
perl(VM::EC2::VPC::RouteTable::Association)
perl(VM::EC2::VPC::Subnet)
perl(VM::EC2::VPC::VpnConnection)
perl(VM::EC2::VPC::VpnGateway)
perl(VM::EC2::VPC::VpnGateway::Attachment)
perl(VM::EC2::VPC::VpnTunnelTelemetry)
perl(VM::EC2::Volume)
perl(VM::EC2::Volume::Status)
perl(VM::EC2::Volume::Status::Action)
perl(VM::EC2::Volume::Status::Details)
perl(VM::EC2::Volume::Status::Event)
perl(VM::EC2::Volume::StatusItem)
perl-VM-EC2
Requires :