Sha256: 789e3bc9271417e881b3c4d06ccc33a654ad8792f0e0892cbcb310d2b31d8987
Contents?: true
Size: 1.62 KB
Versions: 2
Compression:
Stored size: 1.62 KB
Contents
require 'bcrypt' module Jellyfish module Fog module AWS class Databases < ::Provisioner def provision @password = SecureRandom.hex(5) db_instance_id = "id-#{@order_item.uuid[0..9]}" handle_errors do db = connection.create_db_instance(db_instance_id, details) @order_item.payload_response = db.to_json @order_item.provision_status = 'ok' end end def retire connection.delete_db_instance(identifier, snapshot, false) @order_item.provision_status = 'retired' rescue Excon::Errors::BadRequest, Excon::Errors::Forbidden => e raise e, 'Bad request. Check for valid credentials and proper permissions.', e.backtrace end private def details @order_item.answers.merge( 'MasterUserPassword' => @password, 'MasterUsername' => 'admin' ) end def connection ::Fog::AWS::RDS.new( aws_access_key_id: aws_settings.fetch(:access_key), aws_secret_access_key: aws_settings.fetch(:secret_key) ) end def identifier @order_item.payload_response['data']['body']['CreateDBInstanceResult']['DBInstance']['DBInstanceIdentifier'] end def snapshot "snapshot-#{@order_item.uuid[0..5]}" end def handle_errors yield rescue Excon::Errors::BadRequest, Excon::Errors::Forbidden => e raise e, 'Bad request. Check for valid credentials and proper permissions.', e.backtrace end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
jellyfish_fog_aws-0.1.0 | lib/jellyfish_fog_aws/databases.rb |
jellyfish_fog_aws-0.0.1 | lib/jellyfish_fog_aws/databases.rb |