Class: Jellyfish::Fog::Azure::Databases

Inherits:
Provisioner
  • Object
show all
Defined in:
lib/jellyfish_fog_azure/databases.rb

Instance Method Summary collapse

Instance Method Details

#connectionObject



24
25
26
# File 'lib/jellyfish_fog_azure/databases.rb', line 24

def connection
  Connection.new.connect
end

#handle_errorsObject



28
29
30
31
32
# File 'lib/jellyfish_fog_azure/databases.rb', line 28

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

#provisionObject



5
6
7
8
9
10
11
12
13
14
# File 'lib/jellyfish_fog_azure/databases.rb', line 5

def provision
  details = order_item.answers
  server = nil
  password = SecureRandom.hex[0...9]
  handle_errors do
    server = connection.databases.create('admin', password, details['location'])
  end
  order_item.provision_status = :ok
  order_item.payload_response = server.instance_values.merge(password: password)
end

#retireObject



16
17
18
19
20
21
22
# File 'lib/jellyfish_fog_azure/databases.rb', line 16

def retire
  name = order_item.payload_response[:name]
  handle_errors do
    connection.delete_database(name)
  end
  order_item.provision_status = :retired
end