Module: AceClient::Niftycloud::Rdb

Defined in:
lib/ace-client/niftycloud/rdb.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.build_client(options = {}) ⇒ Object



4
5
6
7
8
# File 'lib/ace-client/niftycloud/rdb.rb', line 4

def build_client(options={})
  client = AceClient::Query2.new(options)
  client.extend(AceClient::Niftycloud::Rdb)
  client
end

Instance Method Details

#delete_db_instancesObject



24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/ace-client/niftycloud/rdb.rb', line 24

def delete_db_instances
  db_instances.each do |db_instance|
    self.action('DeleteDBInstance', 'DBInstanceIdentifier' => db_instance['DBInstanceIdentifier'], 'SkipFinalSnapshot' => 'true')
  end
  timeout(60*60) do
    until db_instances.empty?
      if db_instances.any? {|db_instance| db_instance['DBInstanceStatus'] == 'failed' }
        failed = db_instances.select {|db_instance| db_instance['DBInstanceStatus'] == 'failed' }
        raise "DBInstance #{failed.map {|f| f['DBInstanceIdentifier'] }.join(',')} is failed"
      end
      sleep 5
    end
  end
end

#delete_db_parameter_groupsObject



51
52
53
54
55
# File 'lib/ace-client/niftycloud/rdb.rb', line 51

def delete_db_parameter_groups
  db_parameter_groups.each do |db_parameter_group|
    self.action('DeleteDBParameterGroup', 'DBParameterGroupName' => db_parameter_group['DBParameterGroupName'])
  end
end

#delete_db_security_groupsObject



39
40
41
42
43
# File 'lib/ace-client/niftycloud/rdb.rb', line 39

def delete_db_security_groups
  db_security_groups.each do |db_security_group|
    self.action('DeleteDBSecurityGroup', 'DBSecurityGroupName' => db_security_group['DBSecurityGroupName'])
  end
end

#delete_db_snapshotsObject



45
46
47
48
49
# File 'lib/ace-client/niftycloud/rdb.rb', line 45

def delete_db_snapshots
  db_snapshots.each do |db_snapshot|
    self.action('DeleteDBSnapshot', 'DBSnapshotIdentifier' => db_snapshot['DBSnapshotIdentifier'])
  end
end

#delete_resourcesObject



57
58
59
60
61
62
# File 'lib/ace-client/niftycloud/rdb.rb', line 57

def delete_resources
  delete_db_instances
  delete_db_security_groups
  delete_db_snapshots
  delete_db_parameter_groups
end

#items(key) ⇒ Object



10
11
12
13
# File 'lib/ace-client/niftycloud/rdb.rb', line 10

def items(key)
   response = self.action("Describe#{key}s", {})
   [response["Describe#{key}sResponse"]["Describe#{key}sResult"]["#{key}s"][key]].flatten rescue []
end