-
-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Consolidate Neptune
and RDS
backends
#7925
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #7925 +/- ##
==========================================
+ Coverage 94.38% 94.39% +0.01%
==========================================
Files 1114 1109 -5
Lines 95224 95084 -140
==========================================
- Hits 89875 89758 -117
+ Misses 5349 5326 -23
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
@bpandola It is much cleaner like this, with RDS handling everything. If I remember correctly, I did try this approach first, but ran into some problems differentiating when a call came from Neptune and when from RDS. I don't remember exactly what went wrong, but based on this PR, it does work, so I'm more than happy to go ahead with this approach. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Aside from the cache note, this looks good to me.
We would need to find a different approach for the implementation coverage script, to document that RDS coverage == Neptune coverage.
That doesn't have to be now, or even as part of this PR, just noting it as an FYI.
This allows the implementation coverage script to succeed for Neptune
Good catch. I did push an additional commit to fix the implementation coverage script (it was failing before). I think it should work fine now, with no additional work required. |
This is now part of moto >= 5.0.12.dev64 |
Despite being documented as two distinct services (with two distinct boto3 clients), the Neptune and RDS services share a single AWS backend (RDS). This is reflected in the botocore service definition for Neptune, which lists
rds
as its endpoint. Calling theDescribeDBClusters
API method with either theneptune
orrds
boto3 client results in the exact same list of clusters--no filtering is done on the AWS backend. Neptune clusters are commingled with Aurora clusters.@bblommers I think this makes more sense than trying to separate these services (and it prevents a lot of code duplication), but I want to get your opinion since you originally implemented/split out the Neptune service. (As I continue to work on improving the RDS backend overall, I do plan to handle some of the
if self.engine == "neptune
conditionals in a more elegant way.)