def create_instance(credentials, image_id, opts)
ec2 = new_client( credentials )
realm_id = opts[:realm_id]
safely do
image = image(credentials, :id => image_id )
hwp = find_hardware_profile(credentials, opts[:hwp_id], image.id)
ec2_instances = ec2.run_instances(
:image_id => image.id,
:user_data => opts[:user_data],
:key_name => opts[:keyname],
:availability_zone => realm_id,
:monitoring_enabled => true,
:instance_type => hwp.name,
:disable_api_termination => false,
:instance_initiated_shutdown_behavior => 'terminate',
:security_group => opts[:security_group]
)
new_instance = convert_instance( ec2_instances.instancesSet.item.first, 'pending' )
if opts[:load_balancer_id] and opts[:load_balancer_id]!=""
elb = new_client(credentials, :elb)
elb.register_instances_with_load_balancer({
:instances => [new_instance.id],
:load_balancer_name => opts[:load_balancer_id]
})
end
return new_instance
end
end