apache / airflow

Apache Airflow - A platform to programmatically author, schedule, and monitor workflows
https://airflow.apache.org/
Apache License 2.0
36.48k stars 14.13k forks source link

Add AWS Neptune hook and operators #28289

Closed eladkal closed 8 months ago

eladkal commented 1 year ago

Body

Neptune is a graph db offered by AWS. boto3 endpoints can be seen here I think for start we need the following:

NeptuneHook
NeptuneStartDbOperator
NeptuneStopDbOperator

Committer

swapz-z commented 1 year ago

Hello @eladkal I would love to take this up

Taragolis commented 1 year ago

@swapz-z assigned to you

ChhaSahil commented 1 year ago

Hello @eladkal I would also love to take this one!

eladkal commented 1 year ago

@ChhaSahil the issue is already assigned. Maybe you can find other issue that you like to work on? https://github.com/apache/airflow/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22

eladkal commented 1 year ago

@swapz-z are you still working on the issue?

swapz-z commented 1 year ago

Yes @eladkal. Will raise a PR this week

shubham22 commented 1 year ago

@swapz-z - are you still looking into this? Let us know if you need any help. cc: @o-nikolas

swapz-z commented 1 year ago

Thanks for the patience @shubham22 @o-nikolas

I am finished with the implementation. However, for writing tests for operators, I am not sure, how to proceed with the same, since mypy or moto is not available for neptuneDB

Your inputs on the PR and possible guidance of tests implementation is awaited Thanks

o-nikolas commented 1 year ago

Thanks for the patience @shubham22 @o-nikolas

I am finished with the implementation. However, for writing tests for operators, I am not sure, how to proceed with the same, since mypy or moto is not available for neptuneDB

Your inputs on the PR and possible guidance of tests implementation is awaited Thanks

You do not need Moto necessarily, it's a nice way to test hooks, but not strictly required. Just mock what you need to in order to test the functionality of the Operator and the Hook and then add a System Test to functionally test the Operator (which will test the hook).

You can see a recent example PR which has done this here (it's a transfer operator, but the principles are the same). You can see more details about writing AWS system tests in this README.

eladkal commented 1 year ago

However, for writing tests for operators, I am not sure, how to proceed with the same, since mypy or moto is not available for neptuneDB

moto 4.1.4 added Neptune coverage http://docs.getmoto.org/en/latest/docs/services/neptune.html

pateash commented 1 year ago

@eladkal could you please assign this to me

ellisms commented 8 months ago

I'll take this one.

pateash commented 8 months ago

I'll take this one.

Sure