From b3d634e7a3193fca39f772de7bd86346d8b5ea77 Mon Sep 17 00:00:00 2001 From: Wesley Beary Date: Fri, 24 Jul 2009 19:19:17 -0700 Subject: [PATCH] add reboot instances --- lib/fog/aws/ec2.rb | 2 +- lib/fog/aws/requests/ec2/reboot_instances.rb | 24 ++++++++++++++++++++ spec/aws/ec2/reboot_instances_spec.rb | 19 ++++++++++++++++ 3 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 lib/fog/aws/requests/ec2/reboot_instances.rb create mode 100644 spec/aws/ec2/reboot_instances_spec.rb diff --git a/lib/fog/aws/ec2.rb b/lib/fog/aws/ec2.rb index c38cf1b61..9726452d8 100644 --- a/lib/fog/aws/ec2.rb +++ b/lib/fog/aws/ec2.rb @@ -62,7 +62,7 @@ require "#{requests_directory}/disassociate_address" # TODO: require "#{requests_directory}/modify_image_attribute" # TODO: require "#{requests_directory}/monitor_instances" # TODO: require "#{requests_directory}/purchase_reserver_instances_offering" -# TODO: require "#{requests_directory}/reboot_instances" +require "#{requests_directory}/reboot_instances" # TODO: require "#{requests_directory}/register_image" require "#{requests_directory}/release_address" require "#{requests_directory}/revoke_security_group_ingress" diff --git a/lib/fog/aws/requests/ec2/reboot_instances.rb b/lib/fog/aws/requests/ec2/reboot_instances.rb new file mode 100644 index 000000000..70a2ea69b --- /dev/null +++ b/lib/fog/aws/requests/ec2/reboot_instances.rb @@ -0,0 +1,24 @@ +module Fog + module AWS + class EC2 + + # Reboot specified instances + # + # ==== Parameters + # * instance_id<~Array> - Ids of instances to reboot + # + # ==== Returns + # # * response<~Fog::AWS::Response>: + # * body<~Hash>: + # * :request_id<~String> - Id of request + # * :return<~Boolean> - success? + def reboot_instances(instance_id = []) + params = indexed_params('InstanceId', instance_id) + request({ + 'Action' => 'RebootInstances' + }.merge!(params), Fog::Parsers::AWS::EC2::Basic.new) + end + + end + end +end diff --git a/spec/aws/ec2/reboot_instances_spec.rb b/spec/aws/ec2/reboot_instances_spec.rb new file mode 100644 index 000000000..889188c72 --- /dev/null +++ b/spec/aws/ec2/reboot_instances_spec.rb @@ -0,0 +1,19 @@ +require File.dirname(__FILE__) + '/../../spec_helper' + +describe 'EC2.reboot_instances' do + + before(:all) do + @instance_id = ec2.run_instances('ami-5ee70037', 1, 1).body[:instances_set].first[:instance_id] + end + + after(:all) do + ec2.terminate_instances([@instance_id]) + end + + it "should return proper attributes" do + actual = ec2.reboot_instances([@instance_id]) + actual.body[:request_id].should be_a(String) + [false, true].should include(actual.body[:return]) + end + +end