Module: AceClient::Niftycloud::Nas

Defined in:
lib/ace-client/niftycloud/nas.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/nas.rb', line 4

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

Instance Method Details

#delete_nas_instancesObject



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

def delete_nas_instances
  nas_instances.each do |nas_instance|
    self.action('DeleteNASInstance', 'NASInstanceIdentifier' => nas_instance['NASInstanceIdentifier'])
  end
  timeout(60*60) do
    until nas_instances.empty?
      if nas_instances.any? {|nas_instance| nas_instance['NASInstanceStatus'] == 'failed' }
        failed = nas_instances.select {|nas_instance| nas_instance['NASInstanceStatus'] == 'failed' }
        raise "NASInstance #{failed.map {|f| f['NASInstanceIdentifier'] }.join(',')} is failed"
      end
      sleep 5
    end
  end
end

#delete_nas_security_groupsObject



37
38
39
40
41
# File 'lib/ace-client/niftycloud/nas.rb', line 37

def delete_nas_security_groups
  nas_security_groups.each do |nas_security_group|
    self.action('DeleteNASSecurityGroup', 'NASSecurityGroupName' => nas_security_group['NASSecurityGroupName'])
  end
end

#delete_resourcesObject



43
44
45
46
# File 'lib/ace-client/niftycloud/nas.rb', line 43

def delete_resources
  delete_nas_instances
  delete_nas_security_groups
end

#items(key) ⇒ Object



10
11
12
13
# File 'lib/ace-client/niftycloud/nas.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