Class: Fog::AWS::RDS::Snapshots
- Inherits:
-
Collection
- Object
- Array
- Collection
- Fog::AWS::RDS::Snapshots
- Defined in:
- lib/fog/aws/models/rds/snapshots.rb
Instance Attribute Summary
Attributes inherited from Collection
Instance Method Summary collapse
-
#all(filters = filters) ⇒ Object
This will return a single page based on the current or provided filters, updating the filters with the marker for the next page.
-
#each(filters = filters) ⇒ Object
This will execute a block for each snapshot, fetching new pages of snapshots as required.
- #get(identity) ⇒ Object
-
#initialize(attributes) ⇒ Snapshots
constructor
A new instance of Snapshots.
- #new(attributes = {}) ⇒ Object
Methods inherited from Collection
#clear, #create, #destroy, #inspect, #load, model, #model, #reload, #table, #to_json
Methods included from Fog::Attributes::ClassMethods
#_load, #aliases, #attribute, #attributes, #identity, #ignore_attributes, #ignored_attributes
Methods included from Core::DeprecatedConnectionAccessors
#connection, #connection=, #prepare_service_value
Methods included from Fog::Attributes::InstanceMethods
#_dump, #attributes, #dup, #identity, #identity=, #merge_attributes, #new_record?, #persisted?, #requires, #requires_one
Constructor Details
#initialize(attributes) ⇒ Snapshots
Returns a new instance of Snapshots.
13 14 15 16 17 18 19 20 21 22 |
# File 'lib/fog/aws/models/rds/snapshots.rb', line 13 def initialize(attributes) self.filters ||= {} if attributes[:server] filters[:identifier] = attributes[:server].id end if attributes[:type] filters[:type] = attributes[:type] end super end |
Instance Method Details
#all(filters = filters) ⇒ Object
This will return a single page based on the current or provided filters, updating the filters with the marker for the next page. Calling this repeatedly will iterate through pages.
27 28 29 30 31 32 33 34 |
# File 'lib/fog/aws/models/rds/snapshots.rb', line 27 def all(filters = filters) self.filters.merge!(filters) snapshots = service.describe_db_snapshots(filters) self.filters[:marker] = snapshots.body['DescribeDBSnapshotsResult']['Marker'] data = snapshots.body['DescribeDBSnapshotsResult']['DBSnapshots'] load(data) end |
#each(filters = filters) ⇒ Object
This will execute a block for each snapshot, fetching new pages of snapshots as required.
37 38 39 40 41 42 43 44 |
# File 'lib/fog/aws/models/rds/snapshots.rb', line 37 def each(filters = filters) begin page = self.all(filters) # We need to explicitly use the base 'each' method here on the page, otherwise we get infinite recursion base_each = Fog::Collection.instance_method(:each) base_each.bind(page).call {|snapshot| yield snapshot} end while self.filters[:marker] end |
#get(identity) ⇒ Object
46 47 48 49 50 51 |
# File 'lib/fog/aws/models/rds/snapshots.rb', line 46 def get(identity) data = service.describe_db_snapshots(:snapshot_id => identity).body['DescribeDBSnapshotsResult']['DBSnapshots'].first new(data) # data is an attribute hash rescue Fog::AWS::RDS::NotFound nil end |
#new(attributes = {}) ⇒ Object
53 54 55 56 57 58 59 |
# File 'lib/fog/aws/models/rds/snapshots.rb', line 53 def new(attributes = {}) if server super({ :instance_id => server.id }.merge!(attributes)) else super end end |