Repository: getmoto/moto

Issue:
RDS: Problem creating multiple db snapshots.
Hi,

I am creating a mock rds and try to create around 95 snapshots. But after the loop only one snapshot is created at the end:

```python
import boto3
from moto import mock_rds2
from datetime import datetime, timedelta

client = boto3.client('rds')

@mock_rds2
def get_db_instance(db_name):
    # Create the database instance    
    client.create_db_instance(
        DBName= db_name,
        DBInstanceIdentifier='test-db-snapshots',
        AllocatedStorage=100,
        DBInstanceClass='t2.medium',
        Engine='postgres',
        EngineVersion='postgres',
        MasterUsername='test',
        MasterUserPassword='password',
        EnableIAMDatabaseAuthentication=True
    )

    response =  client.describe_db_instances(DBInstanceIdentifier='test-db-snapshots')
    db_instance = response['DBInstances']
    instance_identifier = db_instance[0]['DBInstanceIdentifier']
    current_date = datetime.today()
    counter = 96    
    while (counter>0):
        to_append = current_date - timedelta(days=counter)
        snapsot_identifier = "rds-backup-" + to_append.strftime('%Y-%m-%d')
        client.create_db_snapshot(
            DBSnapshotIdentifier= snapsot_identifier,
            DBInstanceIdentifier = instance_identifier
        )
        counter -= 1
    //from here on only the first snapshot is created and accessed
    all_snapshots = client.describe_db_snapshots(
        DBInstanceIdentifier = instance_identifier
    )
    print(all_snapshots)
get_db_instance('test')

```

```
u'DBSnapshots': [{u'MasterUsername': 'ontrack', u'LicenseModel': 'None', u'InstanceCreateTime': datetime.datetime(2018, 4, 16, 12, 59, 15, 707000, tzinfo=tzutc()), u'Engine': 'postgres', u'VpcId': '', u'SourceRegion': 'ap-southeast-2', u'AllocatedStorage': 100, u'Status': 'available', u'PercentProgress': 100, u'SourceDBSnapshotIdentifier': '', u'DBSnapshotIdentifier': 'rds-backup-2018-01-10', u'DBSnapshotArn': 'arn:aws:rds:ap-southeast-2:1234567890:snapshot:rds-backup-2018-01-10', u'EngineVersion': 'postgres', u'TdeCredentialArn': '', u'OptionGroupName': 'default.postgres9.3', u'SnapshotCreateTime': datetime.datetime(2018, 4, 16, 12, 59, 15, 707000, tzinfo=tzutc()), u'AvailabilityZone': 'None', u'StorageType': 'standard', u'Encrypted': False, u'IAMDatabaseAuthenticationEnabled': False, u'KmsKeyId': 'None', u'SnapshotType': 'manual', u'Timezone': '', u'Port': 5432, u'DBInstanceIdentifier': 'test-db-snapshots'}
```

Also if it helps, 
```python

print(len(all_snapshots["DBSnapshots"]))  //outputs 1

```

This is the response which clearly states that we have only one snapshot present.

Also, I tried **client.copy_db_snapshot(\*\*kwargs)** but it raises a *NotImplementedException*

It would be great to get some perspective on this one.

Cheers


Discussion:

Resolving patch:
diff --git a/moto/rds2/models.py b/moto/rds2/models.py
--- a/moto/rds2/models.py
+++ b/moto/rds2/models.py
@@ -722,10 +722,11 @@ def describe_databases(self, db_instance_identifier=None):
 
     def describe_snapshots(self, db_instance_identifier, db_snapshot_identifier):
         if db_instance_identifier:
+            db_instance_snapshots = []
             for snapshot in self.snapshots.values():
                 if snapshot.database.db_instance_identifier == db_instance_identifier:
-                    return [snapshot]
-            raise DBSnapshotNotFoundError()
+                    db_instance_snapshots.append(snapshot)
+            return db_instance_snapshots
 
         if db_snapshot_identifier:
             if db_snapshot_identifier in self.snapshots:


Test patch:
diff --git a/tests/test_rds2/test_rds2.py b/tests/test_rds2/test_rds2.py
--- a/tests/test_rds2/test_rds2.py
+++ b/tests/test_rds2/test_rds2.py
@@ -350,8 +350,6 @@ def test_describe_db_snapshots():
                             MasterUserPassword='hunter2',
                             Port=1234,
                             DBSecurityGroups=["my_sg"])
-    conn.describe_db_snapshots.when.called_with(
-        DBInstanceIdentifier="db-primary-1").should.throw(ClientError)
 
     created = conn.create_db_snapshot(DBInstanceIdentifier='db-primary-1',
                                       DBSnapshotIdentifier='snapshot-1').get('DBSnapshot')
@@ -366,6 +364,11 @@ def test_describe_db_snapshots():
     snapshot.should.equal(created)
     snapshot.get('Engine').should.equal('postgres')
 
+    conn.create_db_snapshot(DBInstanceIdentifier='db-primary-1',
+                            DBSnapshotIdentifier='snapshot-2')
+    snapshots = conn.describe_db_snapshots(DBInstanceIdentifier='db-primary-1').get('DBSnapshots')
+    snapshots.should.have.length_of(2)
+
 
 @mock_rds2
 def test_delete_db_snapshot():