You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dolphinscheduler.apache.org by GitBox <gi...@apache.org> on 2022/02/23 07:37:48 UTC
[GitHub] [dolphinscheduler] ronyang1985 opened a new pull request #8503: [Feature-8485][task-plugin] add EMR task plugin to support submit task to AWS EMR
ronyang1985 opened a new pull request #8503:
URL: https://github.com/apache/dolphinscheduler/pull/8503
<!--Thanks very much for contributing to Apache DolphinScheduler. Please review https://dolphinscheduler.apache.org/en-us/community/development/pull-request.html before opening a pull request.-->
## Purpose of the pull request
pr for #8485
<!--(For example: This pull request adds checkstyle plugin).-->
## Brief change log
<!--*(for example:)*
- *Add maven-checkstyle-plugin to root pom.xml*
-->
## Verify this pull request
<!--*(Please pick either of the following options)*-->
This pull request is code cleanup without any test coverage.
*(or)*
This pull request is already covered by existing tests, such as *(please describe tests)*.
(or)
This change added tests and can be verified as follows:
<!--*(example:)*
- *Added dolphinscheduler-dao tests for end-to-end.*
- *Added CronUtilsTest to verify the change.*
- *Manually verified the change by testing locally.* -->
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@dolphinscheduler.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [dolphinscheduler] codecov-commenter edited a comment on pull request #8503: [Feature-8485][task-plugin] add EMR task plugin to support submit task to AWS EMR
Posted by GitBox <gi...@apache.org>.
codecov-commenter edited a comment on pull request #8503:
URL: https://github.com/apache/dolphinscheduler/pull/8503#issuecomment-1049604747
# [Codecov](https://codecov.io/gh/apache/dolphinscheduler/pull/8503?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) Report
> Merging [#8503](https://codecov.io/gh/apache/dolphinscheduler/pull/8503?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) (30fa509) into [dev](https://codecov.io/gh/apache/dolphinscheduler/commit/60ddede6a627b1d88b81194bbb75ef0cd04c8f3c?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) (60ddede) will **increase** coverage by `0.04%`.
> The diff coverage is `64.15%`.
[![Impacted file tree graph](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/graphs/tree.svg?width=650&height=150&src=pr&token=bv9iXXRLi9&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation)](https://codecov.io/gh/apache/dolphinscheduler/pull/8503?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation)
```diff
@@ Coverage Diff @@
## dev #8503 +/- ##
============================================
+ Coverage 45.38% 45.42% +0.04%
- Complexity 4031 4049 +18
============================================
Files 686 692 +6
Lines 26725 26840 +115
Branches 2870 2875 +5
============================================
+ Hits 12130 12193 +63
- Misses 13451 13499 +48
- Partials 1144 1148 +4
```
| [Impacted Files](https://codecov.io/gh/apache/dolphinscheduler/pull/8503?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) | Coverage Δ | |
|---|---|---|
| [...olphinscheduler/common/task/emr/EmrParameters.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci1jb21tb24vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2RvbHBoaW5zY2hlZHVsZXIvY29tbW9uL3Rhc2svZW1yL0VtclBhcmFtZXRlcnMuamF2YQ==) | `0.00% <0.00%> (ø)` | |
| [...hinscheduler/common/utils/TaskParametersUtils.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci1jb21tb24vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2RvbHBoaW5zY2hlZHVsZXIvY29tbW9uL3V0aWxzL1Rhc2tQYXJhbWV0ZXJzVXRpbHMuamF2YQ==) | `52.17% <0.00%> (-2.38%)` | :arrow_down: |
| [...pache/dolphinscheduler/spi/task/TaskConstants.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci1zcGkvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2RvbHBoaW5zY2hlZHVsZXIvc3BpL3Rhc2svVGFza0NvbnN0YW50cy5qYXZh) | `0.00% <ø> (ø)` | |
| [...lphinscheduler/plugin/task/emr/EmrTaskChannel.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci10YXNrLXBsdWdpbi9kb2xwaGluc2NoZWR1bGVyLXRhc2stZW1yL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9kb2xwaGluc2NoZWR1bGVyL3BsdWdpbi90YXNrL2Vtci9FbXJUYXNrQ2hhbm5lbC5qYXZh) | `0.00% <0.00%> (ø)` | |
| [...heduler/plugin/task/emr/EmrTaskChannelFactory.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci10YXNrLXBsdWdpbi9kb2xwaGluc2NoZWR1bGVyLXRhc2stZW1yL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9kb2xwaGluc2NoZWR1bGVyL3BsdWdpbi90YXNrL2Vtci9FbXJUYXNrQ2hhbm5lbEZhY3RvcnkuamF2YQ==) | `0.00% <0.00%> (ø)` | |
| [...olphinscheduler/plugin/task/emr/EmrParameters.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci10YXNrLXBsdWdpbi9kb2xwaGluc2NoZWR1bGVyLXRhc2stZW1yL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9kb2xwaGluc2NoZWR1bGVyL3BsdWdpbi90YXNrL2Vtci9FbXJQYXJhbWV0ZXJzLmphdmE=) | `71.42% <71.42%> (ø)` | |
| [...ache/dolphinscheduler/plugin/task/emr/EmrTask.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci10YXNrLXBsdWdpbi9kb2xwaGluc2NoZWR1bGVyLXRhc2stZW1yL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9kb2xwaGluc2NoZWR1bGVyL3BsdWdpbi90YXNrL2Vtci9FbXJUYXNrLmphdmE=) | `72.36% <72.36%> (ø)` | |
| [...apache/dolphinscheduler/common/enums/TaskType.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci1jb21tb24vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2RvbHBoaW5zY2hlZHVsZXIvY29tbW9uL2VudW1zL1Rhc2tUeXBlLmphdmE=) | `96.00% <100.00%> (+0.16%)` | :arrow_up: |
| [...hinscheduler/plugin/task/emr/EmrTaskException.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci10YXNrLXBsdWdpbi9kb2xwaGluc2NoZWR1bGVyLXRhc2stZW1yL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9kb2xwaGluc2NoZWR1bGVyL3BsdWdpbi90YXNrL2Vtci9FbXJUYXNrRXhjZXB0aW9uLmphdmE=) | `100.00% <100.00%> (ø)` | |
| [...e/dolphinscheduler/remote/NettyRemotingClient.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci1yZW1vdGUvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2RvbHBoaW5zY2hlZHVsZXIvcmVtb3RlL05ldHR5UmVtb3RpbmdDbGllbnQuamF2YQ==) | `50.70% <0.00%> (-2.82%)` | :arrow_down: |
| ... and [3 more](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) | |
------
[Continue to review full report at Codecov](https://codecov.io/gh/apache/dolphinscheduler/pull/8503?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/apache/dolphinscheduler/pull/8503?src=pr&el=footer&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation). Last update [60ddede...30fa509](https://codecov.io/gh/apache/dolphinscheduler/pull/8503?src=pr&el=lastupdated&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation).
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@dolphinscheduler.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [dolphinscheduler] sonarcloud[bot] commented on pull request #8503: [Feature-8485][task-plugin] add EMR task plugin to support submit task to AWS EMR
Posted by GitBox <gi...@apache.org>.
sonarcloud[bot] commented on pull request #8503:
URL: https://github.com/apache/dolphinscheduler/pull/8503#issuecomment-1050599900
SonarCloud Quality Gate failed. ![Quality Gate failed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/failed-16px.png 'Quality Gate failed')
[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG)
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY)
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT)
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL) [2 Code Smells](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL)
[![68.3%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/60-16px.png '68.3%')](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_coverage&view=list) [68.3% Coverage](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_coverage&view=list)
[![7.9%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/10-16px.png '7.9%')](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_duplicated_lines_density&view=list) [7.9% Duplication](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_duplicated_lines_density&view=list)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@dolphinscheduler.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [dolphinscheduler] codecov-commenter edited a comment on pull request #8503: [Feature-8485][task-plugin] add EMR task plugin to support submit task to AWS EMR
Posted by GitBox <gi...@apache.org>.
codecov-commenter edited a comment on pull request #8503:
URL: https://github.com/apache/dolphinscheduler/pull/8503#issuecomment-1049604747
# [Codecov](https://codecov.io/gh/apache/dolphinscheduler/pull/8503?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) Report
> Merging [#8503](https://codecov.io/gh/apache/dolphinscheduler/pull/8503?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) (285dcf6) into [dev](https://codecov.io/gh/apache/dolphinscheduler/commit/60ddede6a627b1d88b81194bbb75ef0cd04c8f3c?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) (60ddede) will **decrease** coverage by `0.06%`.
> The diff coverage is `42.95%`.
> :exclamation: Current head 285dcf6 differs from pull request most recent head 62f6378. Consider uploading reports for the commit 62f6378 to get more accurate results
[![Impacted file tree graph](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/graphs/tree.svg?width=650&height=150&src=pr&token=bv9iXXRLi9&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation)](https://codecov.io/gh/apache/dolphinscheduler/pull/8503?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation)
```diff
@@ Coverage Diff @@
## dev #8503 +/- ##
============================================
- Coverage 45.38% 45.32% -0.07%
- Complexity 4031 4060 +29
============================================
Files 686 696 +10
Lines 26725 26978 +253
Branches 2870 2889 +19
============================================
+ Hits 12130 12227 +97
- Misses 13451 13600 +149
- Partials 1144 1151 +7
```
| [Impacted Files](https://codecov.io/gh/apache/dolphinscheduler/pull/8503?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) | Coverage Δ | |
|---|---|---|
| [...org/apache/dolphinscheduler/alert/AlertServer.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci1hbGVydC9kb2xwaGluc2NoZWR1bGVyLWFsZXJ0LXNlcnZlci9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvZG9scGhpbnNjaGVkdWxlci9hbGVydC9BbGVydFNlcnZlci5qYXZh) | `56.41% <0.00%> (-3.05%)` | :arrow_down: |
| [.../org/apache/dolphinscheduler/api/dto/AuditDto.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci1hcGkvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2RvbHBoaW5zY2hlZHVsZXIvYXBpL2R0by9BdWRpdER0by5qYXZh) | `68.75% <ø> (ø)` | |
| [...apache/dolphinscheduler/api/dto/ScheduleParam.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci1hcGkvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2RvbHBoaW5zY2hlZHVsZXIvYXBpL2R0by9TY2hlZHVsZVBhcmFtLmphdmE=) | `0.00% <ø> (ø)` | |
| [...rg/apache/dolphinscheduler/api/dto/gantt/Task.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci1hcGkvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2RvbHBoaW5zY2hlZHVsZXIvYXBpL2R0by9nYW50dC9UYXNrLmphdmE=) | `0.00% <ø> (ø)` | |
| [...he/dolphinscheduler/api/dto/treeview/Instance.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci1hcGkvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2RvbHBoaW5zY2hlZHVsZXIvYXBpL2R0by90cmVldmlldy9JbnN0YW5jZS5qYXZh) | `0.00% <ø> (ø)` | |
| [...heduler/api/service/impl/SchedulerServiceImpl.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci1hcGkvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2RvbHBoaW5zY2hlZHVsZXIvYXBpL3NlcnZpY2UvaW1wbC9TY2hlZHVsZXJTZXJ2aWNlSW1wbC5qYXZh) | `8.62% <0.00%> (-0.07%)` | :arrow_down: |
| [...er/api/service/impl/TaskDefinitionServiceImpl.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci1hcGkvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2RvbHBoaW5zY2hlZHVsZXIvYXBpL3NlcnZpY2UvaW1wbC9UYXNrRGVmaW5pdGlvblNlcnZpY2VJbXBsLmphdmE=) | `22.69% <0.00%> (-0.50%)` | :arrow_down: |
| [...cheduler/common/enums/ComplementDependentMode.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci1jb21tb24vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2RvbHBoaW5zY2hlZHVsZXIvY29tbW9uL2VudW1zL0NvbXBsZW1lbnREZXBlbmRlbnRNb2RlLmphdmE=) | `0.00% <0.00%> (ø)` | |
| [...he/dolphinscheduler/common/model/DateInterval.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci1jb21tb24vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2RvbHBoaW5zY2hlZHVsZXIvY29tbW9uL21vZGVsL0RhdGVJbnRlcnZhbC5qYXZh) | `38.88% <ø> (ø)` | |
| [...g/apache/dolphinscheduler/common/model/Server.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci1jb21tb24vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2RvbHBoaW5zY2hlZHVsZXIvY29tbW9uL21vZGVsL1NlcnZlci5qYXZh) | `0.00% <ø> (ø)` | |
| ... and [80 more](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) | |
------
[Continue to review full report at Codecov](https://codecov.io/gh/apache/dolphinscheduler/pull/8503?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/apache/dolphinscheduler/pull/8503?src=pr&el=footer&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation). Last update [60ddede...62f6378](https://codecov.io/gh/apache/dolphinscheduler/pull/8503?src=pr&el=lastupdated&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation).
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@dolphinscheduler.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [dolphinscheduler] sonarcloud[bot] removed a comment on pull request #8503: [Feature-8485][task-plugin] add EMR task plugin to support submit task to AWS EMR
Posted by GitBox <gi...@apache.org>.
sonarcloud[bot] removed a comment on pull request #8503:
URL: https://github.com/apache/dolphinscheduler/pull/8503#issuecomment-1049824980
SonarCloud Quality Gate failed. ![Quality Gate failed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/failed-16px.png 'Quality Gate failed')
[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG)
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY)
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT)
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL) [2 Code Smells](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL)
[![68.3%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/60-16px.png '68.3%')](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_coverage&view=list) [68.3% Coverage](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_coverage&view=list)
[![8.3%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/10-16px.png '8.3%')](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_duplicated_lines_density&view=list) [8.3% Duplication](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_duplicated_lines_density&view=list)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@dolphinscheduler.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [dolphinscheduler] zhongjiajie commented on pull request #8503: [Feature-8485][task-plugin] add EMR task plugin to support submit task to AWS EMR
Posted by GitBox <gi...@apache.org>.
zhongjiajie commented on pull request #8503:
URL: https://github.com/apache/dolphinscheduler/pull/8503#issuecomment-1049428901
@ronyang1985 It seems we are without UI part, is there any plan to add UI part
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@dolphinscheduler.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [dolphinscheduler] ronyang1985 commented on a change in pull request #8503: [Feature-8485][task-plugin] add EMR task plugin to support submit task to AWS EMR
Posted by GitBox <gi...@apache.org>.
ronyang1985 commented on a change in pull request #8503:
URL: https://github.com/apache/dolphinscheduler/pull/8503#discussion_r813825604
##########
File path: dolphinscheduler-task-plugin/dolphinscheduler-task-emr/src/main/java/org/apache/dolphinscheduler/plugin/task/emr/EmrTask.java
##########
@@ -0,0 +1,249 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.dolphinscheduler.plugin.task.emr;
+
+import static com.fasterxml.jackson.databind.DeserializationFeature.ACCEPT_EMPTY_ARRAY_AS_NULL_OBJECT;
+import static com.fasterxml.jackson.databind.DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES;
+import static com.fasterxml.jackson.databind.DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_AS_NULL;
+import static com.fasterxml.jackson.databind.MapperFeature.REQUIRE_SETTERS_FOR_GETTERS;
+
+import org.apache.dolphinscheduler.plugin.task.api.AbstractTaskExecutor;
+import org.apache.dolphinscheduler.spi.task.AbstractParameters;
+import org.apache.dolphinscheduler.spi.task.TaskConstants;
+import org.apache.dolphinscheduler.spi.task.request.TaskRequest;
+import org.apache.dolphinscheduler.spi.utils.JSONUtils;
+import org.apache.dolphinscheduler.spi.utils.PropertyUtils;
+
+import java.util.HashSet;
+import java.util.TimeZone;
+import java.util.concurrent.TimeUnit;
+
+import com.amazonaws.SdkBaseException;
+import com.amazonaws.auth.AWSCredentialsProvider;
+import com.amazonaws.auth.AWSStaticCredentialsProvider;
+import com.amazonaws.auth.BasicAWSCredentials;
+import com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduce;
+import com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduceClientBuilder;
+import com.amazonaws.services.elasticmapreduce.model.ClusterState;
+import com.amazonaws.services.elasticmapreduce.model.ClusterStateChangeReason;
+import com.amazonaws.services.elasticmapreduce.model.ClusterStateChangeReasonCode;
+import com.amazonaws.services.elasticmapreduce.model.ClusterStatus;
+import com.amazonaws.services.elasticmapreduce.model.DescribeClusterRequest;
+import com.amazonaws.services.elasticmapreduce.model.DescribeClusterResult;
+import com.amazonaws.services.elasticmapreduce.model.RunJobFlowRequest;
+import com.amazonaws.services.elasticmapreduce.model.RunJobFlowResult;
+import com.amazonaws.services.elasticmapreduce.model.TerminateJobFlowsRequest;
+import com.amazonaws.services.elasticmapreduce.model.TerminateJobFlowsResult;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.PropertyNamingStrategy;
+import com.fasterxml.jackson.databind.cfg.MapperConfig;
+import com.fasterxml.jackson.databind.introspect.AnnotatedMethod;
+import com.google.common.collect.Sets;
+
+public class EmrTask extends AbstractTaskExecutor {
+
+ /**
+ * taskExecutionContext
+ */
+ private final TaskRequest taskExecutionContext;
+ /**
+ * emr parameters
+ */
+ private EmrParameters emrParameters;
+ private AmazonElasticMapReduce emrClient;
+
+ private String clusterId;
+
+ private final HashSet<String> waitingStateSet = Sets.newHashSet(
+ ClusterState.STARTING.toString(),
+ ClusterState.BOOTSTRAPPING.toString(),
+ ClusterState.RUNNING.toString()
+ );
+
+ /**
+ * config ObjectMapper features and propertyNamingStrategy
+ * support capital letters parse
+ */
+ private static final ObjectMapper objectMapper = new ObjectMapper()
+ .configure(FAIL_ON_UNKNOWN_PROPERTIES, false)
+ .configure(ACCEPT_EMPTY_ARRAY_AS_NULL_OBJECT, true)
+ .configure(READ_UNKNOWN_ENUM_VALUES_AS_NULL, true)
+ .configure(REQUIRE_SETTERS_FOR_GETTERS, true)
+ .setPropertyNamingStrategy(new PropertyNamingStrategy() {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public String nameForSetterMethod(MapperConfig<?> config,
+ AnnotatedMethod method, String defaultName) {
+ return method.getName().substring(3);
+ }
+
+ @Override
+ public String nameForGetterMethod(MapperConfig<?> config,
+ AnnotatedMethod method, String defaultName) {
+ return method.getName().substring(3);
+ }
+ }).setTimeZone(TimeZone.getDefault());
+
+ /**
+ * constructor
+ *
+ * @param taskExecutionContext taskExecutionContext
+ */
+ protected EmrTask(TaskRequest taskExecutionContext) {
+
+ super(taskExecutionContext);
+ this.taskExecutionContext = taskExecutionContext;
+
+ }
+
+ @Override
+ public void init() {
+ logger.info("emr task params:{}", taskExecutionContext.getTaskParams());
+ emrParameters = JSONUtils.parseObject(taskExecutionContext.getTaskParams(), EmrParameters.class);
+ if (emrParameters == null || !emrParameters.checkParameters()) {
+ throw new EmrTaskException("emr task params is not valid");
+ }
+ emrClient = createEmrClient();
+ }
+
+ @Override
+ public void handle() throws InterruptedException {
+ ClusterStatus clusterStatus = null;
+ try {
+ RunJobFlowRequest runJobFlowRequest = createRunJobFlowRequest();
+
+ // submit runJobFlowRequest to aws
+ RunJobFlowResult result = emrClient.runJobFlow(runJobFlowRequest);
+
+ clusterId = result.getJobFlowId();
Review comment:
accept it
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@dolphinscheduler.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [dolphinscheduler] ruanwenjun closed pull request #8503: [Feature-8485][task-plugin] add EMR task plugin to support submit task to AWS EMR
Posted by GitBox <gi...@apache.org>.
ruanwenjun closed pull request #8503:
URL: https://github.com/apache/dolphinscheduler/pull/8503
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@dolphinscheduler.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [dolphinscheduler] sonarcloud[bot] removed a comment on pull request #8503: [Feature-8485][task-plugin] add EMR task plugin to support submit task to AWS EMR
Posted by GitBox <gi...@apache.org>.
sonarcloud[bot] removed a comment on pull request #8503:
URL: https://github.com/apache/dolphinscheduler/pull/8503#issuecomment-1050478753
SonarCloud Quality Gate failed. ![Quality Gate failed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/failed-16px.png 'Quality Gate failed')
[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG)
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY)
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT)
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL) [2 Code Smells](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL)
[![68.3%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/60-16px.png '68.3%')](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_coverage&view=list) [68.3% Coverage](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_coverage&view=list)
[![7.9%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/10-16px.png '7.9%')](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_duplicated_lines_density&view=list) [7.9% Duplication](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_duplicated_lines_density&view=list)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@dolphinscheduler.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [dolphinscheduler] lenboo commented on pull request #8503: [Feature-8485][task-plugin] add EMR task plugin to support submit task to AWS EMR
Posted by GitBox <gi...@apache.org>.
lenboo commented on pull request #8503:
URL: https://github.com/apache/dolphinscheduler/pull/8503#issuecomment-1050621720
>
Yes, we have some problems in different tasks failover. Now, we get yarn ids from task log, and kill yarn id in task failover. But it cannot support custom unknown tasks, such as k8s and EMR tasks. So we should consider reconstructing the process of task failover.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@dolphinscheduler.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [dolphinscheduler] zhongjiajie commented on pull request #8503: [Feature-8485][task-plugin] add EMR task plugin to support submit task to AWS EMR
Posted by GitBox <gi...@apache.org>.
zhongjiajie commented on pull request #8503:
URL: https://github.com/apache/dolphinscheduler/pull/8503#issuecomment-1049593446
FYI, UT do not pass
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@dolphinscheduler.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [dolphinscheduler] zhongjiajie merged pull request #8503: [Feature-8485][task-plugin] add EMR task plugin to support submit task to AWS EMR
Posted by GitBox <gi...@apache.org>.
zhongjiajie merged pull request #8503:
URL: https://github.com/apache/dolphinscheduler/pull/8503
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@dolphinscheduler.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [dolphinscheduler] sonarcloud[bot] removed a comment on pull request #8503: [Feature-8485][task-plugin] add EMR task plugin to support submit task to AWS EMR
Posted by GitBox <gi...@apache.org>.
sonarcloud[bot] removed a comment on pull request #8503:
URL: https://github.com/apache/dolphinscheduler/pull/8503#issuecomment-1050599900
SonarCloud Quality Gate failed. ![Quality Gate failed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/failed-16px.png 'Quality Gate failed')
[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG)
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY)
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT)
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL) [2 Code Smells](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL)
[![68.3%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/60-16px.png '68.3%')](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_coverage&view=list) [68.3% Coverage](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_coverage&view=list)
[![7.9%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/10-16px.png '7.9%')](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_duplicated_lines_density&view=list) [7.9% Duplication](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_duplicated_lines_density&view=list)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@dolphinscheduler.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [dolphinscheduler] ronyang1985 commented on pull request #8503: [Feature-8485][task-plugin] add EMR task plugin to support submit task to AWS EMR
Posted by GitBox <gi...@apache.org>.
ronyang1985 commented on pull request #8503:
URL: https://github.com/apache/dolphinscheduler/pull/8503#issuecomment-1049639832
> > > @ronyang1985 It seems we are without UI part, is there any plan to add UI part
> >
> >
> > >
> >
> >
> > @zhongjiajie I am not very good at front-end development, the ui part may be added after ui-next is completed by other contributors?
>
> I got it, cc: @songjianet . I also add the label `miss document` to this PR, to remind us to need to add a document about it
hi, about the document,i submit a pr ,https://github.com/apache/dolphinscheduler-website/pull/702
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@dolphinscheduler.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [dolphinscheduler] ruanwenjun commented on pull request #8503: [Feature-8485][task-plugin] add EMR task plugin to support submit task to AWS EMR
Posted by GitBox <gi...@apache.org>.
ruanwenjun commented on pull request #8503:
URL: https://github.com/apache/dolphinscheduler/pull/8503#issuecomment-1050867750
Clicked the close button by mistake, this PR is ok for me. According to @lenboo said, we can reconstruct the process of task failover in the future. Currently, we can just add `TODO` to describe the possible failover issue in code.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@dolphinscheduler.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [dolphinscheduler] sonarcloud[bot] removed a comment on pull request #8503: [Feature-8485][task-plugin] add EMR task plugin to support submit task to AWS EMR
Posted by GitBox <gi...@apache.org>.
sonarcloud[bot] removed a comment on pull request #8503:
URL: https://github.com/apache/dolphinscheduler/pull/8503#issuecomment-1048531380
SonarCloud Quality Gate failed. ![Quality Gate failed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/failed-16px.png 'Quality Gate failed')
[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG)
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY)
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT)
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL) [2 Code Smells](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL)
[![68.1%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/60-16px.png '68.1%')](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_coverage&view=list) [68.1% Coverage](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_coverage&view=list)
[![8.5%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/10-16px.png '8.5%')](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_duplicated_lines_density&view=list) [8.5% Duplication](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_duplicated_lines_density&view=list)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@dolphinscheduler.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [dolphinscheduler] sonarcloud[bot] commented on pull request #8503: [Feature-8485][task-plugin] add EMR task plugin to support submit task to AWS EMR
Posted by GitBox <gi...@apache.org>.
sonarcloud[bot] commented on pull request #8503:
URL: https://github.com/apache/dolphinscheduler/pull/8503#issuecomment-1049612775
SonarCloud Quality Gate failed. ![Quality Gate failed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/failed-16px.png 'Quality Gate failed')
[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG)
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY)
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT)
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL) [2 Code Smells](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL)
[![69.0%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/60-16px.png '69.0%')](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_coverage&view=list) [69.0% Coverage](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_coverage&view=list)
[![8.1%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/10-16px.png '8.1%')](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_duplicated_lines_density&view=list) [8.1% Duplication](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_duplicated_lines_density&view=list)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@dolphinscheduler.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [dolphinscheduler] sonarcloud[bot] commented on pull request #8503: [Feature-8485][task-plugin] add EMR task plugin to support submit task to AWS EMR
Posted by GitBox <gi...@apache.org>.
sonarcloud[bot] commented on pull request #8503:
URL: https://github.com/apache/dolphinscheduler/pull/8503#issuecomment-1050625438
SonarCloud Quality Gate failed. ![Quality Gate failed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/failed-16px.png 'Quality Gate failed')
[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG)
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY)
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT)
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL) [2 Code Smells](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL)
[![68.3%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/60-16px.png '68.3%')](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_coverage&view=list) [68.3% Coverage](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_coverage&view=list)
[![7.9%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/10-16px.png '7.9%')](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_duplicated_lines_density&view=list) [7.9% Duplication](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_duplicated_lines_density&view=list)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@dolphinscheduler.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [dolphinscheduler] sonarcloud[bot] removed a comment on pull request #8503: [Feature-8485][task-plugin] add EMR task plugin to support submit task to AWS EMR
Posted by GitBox <gi...@apache.org>.
sonarcloud[bot] removed a comment on pull request #8503:
URL: https://github.com/apache/dolphinscheduler/pull/8503#issuecomment-1050881890
SonarCloud Quality Gate failed. ![Quality Gate failed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/failed-16px.png 'Quality Gate failed')
[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG)
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY)
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT)
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL) [2 Code Smells](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL)
[![68.3%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/60-16px.png '68.3%')](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_coverage&view=list) [68.3% Coverage](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_coverage&view=list)
[![7.9%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/10-16px.png '7.9%')](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_duplicated_lines_density&view=list) [7.9% Duplication](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_duplicated_lines_density&view=list)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@dolphinscheduler.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [dolphinscheduler] ronyang1985 edited a comment on pull request #8503: [Feature-8485][task-plugin] add EMR task plugin to support submit task to AWS EMR
Posted by GitBox <gi...@apache.org>.
ronyang1985 edited a comment on pull request #8503:
URL: https://github.com/apache/dolphinscheduler/pull/8503#issuecomment-1049639832
> > > @ronyang1985 It seems we are without UI part, is there any plan to add UI part
> >
> >
> > >
> >
> >
> > @zhongjiajie I am not very good at front-end development, the ui part may be added after ui-next is completed by other contributors?
>
> I got it, cc: @songjianet . I also add the label `miss document` to this PR, to remind us to need to add a document about it
@zhongjiajie hi, about the document, i submit a pr ,https://github.com/apache/dolphinscheduler-website/pull/702
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@dolphinscheduler.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [dolphinscheduler] codecov-commenter edited a comment on pull request #8503: [Feature-8485][task-plugin] add EMR task plugin to support submit task to AWS EMR
Posted by GitBox <gi...@apache.org>.
codecov-commenter edited a comment on pull request #8503:
URL: https://github.com/apache/dolphinscheduler/pull/8503#issuecomment-1049604747
# [Codecov](https://codecov.io/gh/apache/dolphinscheduler/pull/8503?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) Report
> Merging [#8503](https://codecov.io/gh/apache/dolphinscheduler/pull/8503?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) (f55992d) into [dev](https://codecov.io/gh/apache/dolphinscheduler/commit/60ddede6a627b1d88b81194bbb75ef0cd04c8f3c?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) (60ddede) will **decrease** coverage by `0.07%`.
> The diff coverage is `64.15%`.
[![Impacted file tree graph](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/graphs/tree.svg?width=650&height=150&src=pr&token=bv9iXXRLi9&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation)](https://codecov.io/gh/apache/dolphinscheduler/pull/8503?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation)
```diff
@@ Coverage Diff @@
## dev #8503 +/- ##
============================================
- Coverage 45.38% 45.31% -0.08%
- Complexity 4031 4059 +28
============================================
Files 686 696 +10
Lines 26725 26978 +253
Branches 2870 2889 +19
============================================
+ Hits 12130 12224 +94
- Misses 13451 13602 +151
- Partials 1144 1152 +8
```
| [Impacted Files](https://codecov.io/gh/apache/dolphinscheduler/pull/8503?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) | Coverage Δ | |
|---|---|---|
| [...olphinscheduler/common/task/emr/EmrParameters.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci1jb21tb24vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2RvbHBoaW5zY2hlZHVsZXIvY29tbW9uL3Rhc2svZW1yL0VtclBhcmFtZXRlcnMuamF2YQ==) | `0.00% <0.00%> (ø)` | |
| [...hinscheduler/common/utils/TaskParametersUtils.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci1jb21tb24vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2RvbHBoaW5zY2hlZHVsZXIvY29tbW9uL3V0aWxzL1Rhc2tQYXJhbWV0ZXJzVXRpbHMuamF2YQ==) | `52.17% <0.00%> (-2.38%)` | :arrow_down: |
| [...pache/dolphinscheduler/spi/task/TaskConstants.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci1zcGkvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2RvbHBoaW5zY2hlZHVsZXIvc3BpL3Rhc2svVGFza0NvbnN0YW50cy5qYXZh) | `0.00% <ø> (ø)` | |
| [...lphinscheduler/plugin/task/emr/EmrTaskChannel.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci10YXNrLXBsdWdpbi9kb2xwaGluc2NoZWR1bGVyLXRhc2stZW1yL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9kb2xwaGluc2NoZWR1bGVyL3BsdWdpbi90YXNrL2Vtci9FbXJUYXNrQ2hhbm5lbC5qYXZh) | `0.00% <0.00%> (ø)` | |
| [...heduler/plugin/task/emr/EmrTaskChannelFactory.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci10YXNrLXBsdWdpbi9kb2xwaGluc2NoZWR1bGVyLXRhc2stZW1yL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9kb2xwaGluc2NoZWR1bGVyL3BsdWdpbi90YXNrL2Vtci9FbXJUYXNrQ2hhbm5lbEZhY3RvcnkuamF2YQ==) | `0.00% <0.00%> (ø)` | |
| [...olphinscheduler/plugin/task/emr/EmrParameters.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci10YXNrLXBsdWdpbi9kb2xwaGluc2NoZWR1bGVyLXRhc2stZW1yL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9kb2xwaGluc2NoZWR1bGVyL3BsdWdpbi90YXNrL2Vtci9FbXJQYXJhbWV0ZXJzLmphdmE=) | `71.42% <71.42%> (ø)` | |
| [...ache/dolphinscheduler/plugin/task/emr/EmrTask.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci10YXNrLXBsdWdpbi9kb2xwaGluc2NoZWR1bGVyLXRhc2stZW1yL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9kb2xwaGluc2NoZWR1bGVyL3BsdWdpbi90YXNrL2Vtci9FbXJUYXNrLmphdmE=) | `72.36% <72.36%> (ø)` | |
| [...apache/dolphinscheduler/common/enums/TaskType.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci1jb21tb24vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2RvbHBoaW5zY2hlZHVsZXIvY29tbW9uL2VudW1zL1Rhc2tUeXBlLmphdmE=) | `96.00% <100.00%> (+0.16%)` | :arrow_up: |
| [...hinscheduler/plugin/task/emr/EmrTaskException.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci10YXNrLXBsdWdpbi9kb2xwaGluc2NoZWR1bGVyLXRhc2stZW1yL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9kb2xwaGluc2NoZWR1bGVyL3BsdWdpbi90YXNrL2Vtci9FbXJUYXNrRXhjZXB0aW9uLmphdmE=) | `100.00% <100.00%> (ø)` | |
| [...cheduler/api/service/impl/ExecutorServiceImpl.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci1hcGkvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2RvbHBoaW5zY2hlZHVsZXIvYXBpL3NlcnZpY2UvaW1wbC9FeGVjdXRvclNlcnZpY2VJbXBsLmphdmE=) | `41.96% <0.00%> (-5.14%)` | :arrow_down: |
| ... and [73 more](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) | |
------
[Continue to review full report at Codecov](https://codecov.io/gh/apache/dolphinscheduler/pull/8503?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/apache/dolphinscheduler/pull/8503?src=pr&el=footer&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation). Last update [60ddede...f55992d](https://codecov.io/gh/apache/dolphinscheduler/pull/8503?src=pr&el=lastupdated&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation).
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@dolphinscheduler.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [dolphinscheduler] sonarcloud[bot] removed a comment on pull request #8503: [Feature-8485][task-plugin] add EMR task plugin to support submit task to AWS EMR
Posted by GitBox <gi...@apache.org>.
sonarcloud[bot] removed a comment on pull request #8503:
URL: https://github.com/apache/dolphinscheduler/pull/8503#issuecomment-1050625438
SonarCloud Quality Gate failed. ![Quality Gate failed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/failed-16px.png 'Quality Gate failed')
[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG)
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY)
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT)
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL) [2 Code Smells](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL)
[![68.3%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/60-16px.png '68.3%')](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_coverage&view=list) [68.3% Coverage](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_coverage&view=list)
[![7.9%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/10-16px.png '7.9%')](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_duplicated_lines_density&view=list) [7.9% Duplication](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_duplicated_lines_density&view=list)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@dolphinscheduler.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [dolphinscheduler] sonarcloud[bot] commented on pull request #8503: [Feature-8485][task-plugin] add EMR task plugin to support submit task to AWS EMR
Posted by GitBox <gi...@apache.org>.
sonarcloud[bot] commented on pull request #8503:
URL: https://github.com/apache/dolphinscheduler/pull/8503#issuecomment-1050881890
SonarCloud Quality Gate failed. ![Quality Gate failed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/failed-16px.png 'Quality Gate failed')
[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG)
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY)
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT)
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL) [2 Code Smells](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL)
[![68.3%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/60-16px.png '68.3%')](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_coverage&view=list) [68.3% Coverage](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_coverage&view=list)
[![7.9%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/10-16px.png '7.9%')](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_duplicated_lines_density&view=list) [7.9% Duplication](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_duplicated_lines_density&view=list)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@dolphinscheduler.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [dolphinscheduler] caishunfeng commented on a change in pull request #8503: [Feature-8485][task-plugin] add EMR task plugin to support submit task to AWS EMR
Posted by GitBox <gi...@apache.org>.
caishunfeng commented on a change in pull request #8503:
URL: https://github.com/apache/dolphinscheduler/pull/8503#discussion_r813720756
##########
File path: dolphinscheduler-task-plugin/dolphinscheduler-task-emr/src/main/java/org/apache/dolphinscheduler/plugin/task/emr/EmrTask.java
##########
@@ -0,0 +1,249 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.dolphinscheduler.plugin.task.emr;
+
+import static com.fasterxml.jackson.databind.DeserializationFeature.ACCEPT_EMPTY_ARRAY_AS_NULL_OBJECT;
+import static com.fasterxml.jackson.databind.DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES;
+import static com.fasterxml.jackson.databind.DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_AS_NULL;
+import static com.fasterxml.jackson.databind.MapperFeature.REQUIRE_SETTERS_FOR_GETTERS;
+
+import org.apache.dolphinscheduler.plugin.task.api.AbstractTaskExecutor;
+import org.apache.dolphinscheduler.spi.task.AbstractParameters;
+import org.apache.dolphinscheduler.spi.task.TaskConstants;
+import org.apache.dolphinscheduler.spi.task.request.TaskRequest;
+import org.apache.dolphinscheduler.spi.utils.JSONUtils;
+import org.apache.dolphinscheduler.spi.utils.PropertyUtils;
+
+import java.util.HashSet;
+import java.util.TimeZone;
+import java.util.concurrent.TimeUnit;
+
+import com.amazonaws.SdkBaseException;
+import com.amazonaws.auth.AWSCredentialsProvider;
+import com.amazonaws.auth.AWSStaticCredentialsProvider;
+import com.amazonaws.auth.BasicAWSCredentials;
+import com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduce;
+import com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduceClientBuilder;
+import com.amazonaws.services.elasticmapreduce.model.ClusterState;
+import com.amazonaws.services.elasticmapreduce.model.ClusterStateChangeReason;
+import com.amazonaws.services.elasticmapreduce.model.ClusterStateChangeReasonCode;
+import com.amazonaws.services.elasticmapreduce.model.ClusterStatus;
+import com.amazonaws.services.elasticmapreduce.model.DescribeClusterRequest;
+import com.amazonaws.services.elasticmapreduce.model.DescribeClusterResult;
+import com.amazonaws.services.elasticmapreduce.model.RunJobFlowRequest;
+import com.amazonaws.services.elasticmapreduce.model.RunJobFlowResult;
+import com.amazonaws.services.elasticmapreduce.model.TerminateJobFlowsRequest;
+import com.amazonaws.services.elasticmapreduce.model.TerminateJobFlowsResult;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.PropertyNamingStrategy;
+import com.fasterxml.jackson.databind.cfg.MapperConfig;
+import com.fasterxml.jackson.databind.introspect.AnnotatedMethod;
+import com.google.common.collect.Sets;
+
+public class EmrTask extends AbstractTaskExecutor {
+
+ /**
+ * taskExecutionContext
+ */
+ private final TaskRequest taskExecutionContext;
+ /**
+ * emr parameters
+ */
+ private EmrParameters emrParameters;
+ private AmazonElasticMapReduce emrClient;
+
+ private String clusterId;
+
+ private final HashSet<String> waitingStateSet = Sets.newHashSet(
+ ClusterState.STARTING.toString(),
+ ClusterState.BOOTSTRAPPING.toString(),
+ ClusterState.RUNNING.toString()
+ );
+
+ /**
+ * config ObjectMapper features and propertyNamingStrategy
+ * support capital letters parse
+ */
+ private static final ObjectMapper objectMapper = new ObjectMapper()
+ .configure(FAIL_ON_UNKNOWN_PROPERTIES, false)
+ .configure(ACCEPT_EMPTY_ARRAY_AS_NULL_OBJECT, true)
+ .configure(READ_UNKNOWN_ENUM_VALUES_AS_NULL, true)
+ .configure(REQUIRE_SETTERS_FOR_GETTERS, true)
+ .setPropertyNamingStrategy(new PropertyNamingStrategy() {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public String nameForSetterMethod(MapperConfig<?> config,
+ AnnotatedMethod method, String defaultName) {
+ return method.getName().substring(3);
+ }
+
+ @Override
+ public String nameForGetterMethod(MapperConfig<?> config,
+ AnnotatedMethod method, String defaultName) {
+ return method.getName().substring(3);
+ }
+ }).setTimeZone(TimeZone.getDefault());
+
+ /**
+ * constructor
+ *
+ * @param taskExecutionContext taskExecutionContext
+ */
+ protected EmrTask(TaskRequest taskExecutionContext) {
+
+ super(taskExecutionContext);
+ this.taskExecutionContext = taskExecutionContext;
+
+ }
+
+ @Override
+ public void init() {
+ logger.info("emr task params:{}", taskExecutionContext.getTaskParams());
+ emrParameters = JSONUtils.parseObject(taskExecutionContext.getTaskParams(), EmrParameters.class);
+ if (emrParameters == null || !emrParameters.checkParameters()) {
+ throw new EmrTaskException("emr task params is not valid");
+ }
+ emrClient = createEmrClient();
+ }
+
+ @Override
+ public void handle() throws InterruptedException {
+ ClusterStatus clusterStatus = null;
+ try {
+ RunJobFlowRequest runJobFlowRequest = createRunJobFlowRequest();
+
+ // submit runJobFlowRequest to aws
+ RunJobFlowResult result = emrClient.runJobFlow(runJobFlowRequest);
+
+ clusterId = result.getJobFlowId();
Review comment:
Should it recode the jobFlowId as appId?
##########
File path: dolphinscheduler-task-plugin/dolphinscheduler-task-emr/src/main/java/org/apache/dolphinscheduler/plugin/task/emr/EmrTask.java
##########
@@ -0,0 +1,249 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.dolphinscheduler.plugin.task.emr;
+
+import static com.fasterxml.jackson.databind.DeserializationFeature.ACCEPT_EMPTY_ARRAY_AS_NULL_OBJECT;
+import static com.fasterxml.jackson.databind.DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES;
+import static com.fasterxml.jackson.databind.DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_AS_NULL;
+import static com.fasterxml.jackson.databind.MapperFeature.REQUIRE_SETTERS_FOR_GETTERS;
+
+import org.apache.dolphinscheduler.plugin.task.api.AbstractTaskExecutor;
+import org.apache.dolphinscheduler.spi.task.AbstractParameters;
+import org.apache.dolphinscheduler.spi.task.TaskConstants;
+import org.apache.dolphinscheduler.spi.task.request.TaskRequest;
+import org.apache.dolphinscheduler.spi.utils.JSONUtils;
+import org.apache.dolphinscheduler.spi.utils.PropertyUtils;
+
+import java.util.HashSet;
+import java.util.TimeZone;
+import java.util.concurrent.TimeUnit;
+
+import com.amazonaws.SdkBaseException;
+import com.amazonaws.auth.AWSCredentialsProvider;
+import com.amazonaws.auth.AWSStaticCredentialsProvider;
+import com.amazonaws.auth.BasicAWSCredentials;
+import com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduce;
+import com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduceClientBuilder;
+import com.amazonaws.services.elasticmapreduce.model.ClusterState;
+import com.amazonaws.services.elasticmapreduce.model.ClusterStateChangeReason;
+import com.amazonaws.services.elasticmapreduce.model.ClusterStateChangeReasonCode;
+import com.amazonaws.services.elasticmapreduce.model.ClusterStatus;
+import com.amazonaws.services.elasticmapreduce.model.DescribeClusterRequest;
+import com.amazonaws.services.elasticmapreduce.model.DescribeClusterResult;
+import com.amazonaws.services.elasticmapreduce.model.RunJobFlowRequest;
+import com.amazonaws.services.elasticmapreduce.model.RunJobFlowResult;
+import com.amazonaws.services.elasticmapreduce.model.TerminateJobFlowsRequest;
+import com.amazonaws.services.elasticmapreduce.model.TerminateJobFlowsResult;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.PropertyNamingStrategy;
+import com.fasterxml.jackson.databind.cfg.MapperConfig;
+import com.fasterxml.jackson.databind.introspect.AnnotatedMethod;
+import com.google.common.collect.Sets;
+
+public class EmrTask extends AbstractTaskExecutor {
+
+ /**
+ * taskExecutionContext
+ */
+ private final TaskRequest taskExecutionContext;
+ /**
+ * emr parameters
+ */
+ private EmrParameters emrParameters;
+ private AmazonElasticMapReduce emrClient;
+
+ private String clusterId;
+
+ private final HashSet<String> waitingStateSet = Sets.newHashSet(
+ ClusterState.STARTING.toString(),
+ ClusterState.BOOTSTRAPPING.toString(),
+ ClusterState.RUNNING.toString()
+ );
+
+ /**
+ * config ObjectMapper features and propertyNamingStrategy
+ * support capital letters parse
+ */
+ private static final ObjectMapper objectMapper = new ObjectMapper()
+ .configure(FAIL_ON_UNKNOWN_PROPERTIES, false)
+ .configure(ACCEPT_EMPTY_ARRAY_AS_NULL_OBJECT, true)
+ .configure(READ_UNKNOWN_ENUM_VALUES_AS_NULL, true)
+ .configure(REQUIRE_SETTERS_FOR_GETTERS, true)
+ .setPropertyNamingStrategy(new PropertyNamingStrategy() {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public String nameForSetterMethod(MapperConfig<?> config,
+ AnnotatedMethod method, String defaultName) {
+ return method.getName().substring(3);
Review comment:
Why use `substring(3)` here? Can you add some comment for it?
##########
File path: dolphinscheduler-task-plugin/dolphinscheduler-task-emr/src/main/java/org/apache/dolphinscheduler/plugin/task/emr/EmrTask.java
##########
@@ -0,0 +1,249 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.dolphinscheduler.plugin.task.emr;
+
+import static com.fasterxml.jackson.databind.DeserializationFeature.ACCEPT_EMPTY_ARRAY_AS_NULL_OBJECT;
+import static com.fasterxml.jackson.databind.DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES;
+import static com.fasterxml.jackson.databind.DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_AS_NULL;
+import static com.fasterxml.jackson.databind.MapperFeature.REQUIRE_SETTERS_FOR_GETTERS;
+
+import org.apache.dolphinscheduler.plugin.task.api.AbstractTaskExecutor;
+import org.apache.dolphinscheduler.spi.task.AbstractParameters;
+import org.apache.dolphinscheduler.spi.task.TaskConstants;
+import org.apache.dolphinscheduler.spi.task.request.TaskRequest;
+import org.apache.dolphinscheduler.spi.utils.JSONUtils;
+import org.apache.dolphinscheduler.spi.utils.PropertyUtils;
+
+import java.util.HashSet;
+import java.util.TimeZone;
+import java.util.concurrent.TimeUnit;
+
+import com.amazonaws.SdkBaseException;
+import com.amazonaws.auth.AWSCredentialsProvider;
+import com.amazonaws.auth.AWSStaticCredentialsProvider;
+import com.amazonaws.auth.BasicAWSCredentials;
+import com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduce;
+import com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduceClientBuilder;
+import com.amazonaws.services.elasticmapreduce.model.ClusterState;
+import com.amazonaws.services.elasticmapreduce.model.ClusterStateChangeReason;
+import com.amazonaws.services.elasticmapreduce.model.ClusterStateChangeReasonCode;
+import com.amazonaws.services.elasticmapreduce.model.ClusterStatus;
+import com.amazonaws.services.elasticmapreduce.model.DescribeClusterRequest;
+import com.amazonaws.services.elasticmapreduce.model.DescribeClusterResult;
+import com.amazonaws.services.elasticmapreduce.model.RunJobFlowRequest;
+import com.amazonaws.services.elasticmapreduce.model.RunJobFlowResult;
+import com.amazonaws.services.elasticmapreduce.model.TerminateJobFlowsRequest;
+import com.amazonaws.services.elasticmapreduce.model.TerminateJobFlowsResult;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.PropertyNamingStrategy;
+import com.fasterxml.jackson.databind.cfg.MapperConfig;
+import com.fasterxml.jackson.databind.introspect.AnnotatedMethod;
+import com.google.common.collect.Sets;
+
+public class EmrTask extends AbstractTaskExecutor {
+
+ /**
+ * taskExecutionContext
+ */
+ private final TaskRequest taskExecutionContext;
+ /**
+ * emr parameters
+ */
+ private EmrParameters emrParameters;
+ private AmazonElasticMapReduce emrClient;
+
+ private String clusterId;
+
+ private final HashSet<String> waitingStateSet = Sets.newHashSet(
+ ClusterState.STARTING.toString(),
+ ClusterState.BOOTSTRAPPING.toString(),
+ ClusterState.RUNNING.toString()
+ );
+
+ /**
+ * config ObjectMapper features and propertyNamingStrategy
+ * support capital letters parse
+ */
+ private static final ObjectMapper objectMapper = new ObjectMapper()
+ .configure(FAIL_ON_UNKNOWN_PROPERTIES, false)
+ .configure(ACCEPT_EMPTY_ARRAY_AS_NULL_OBJECT, true)
+ .configure(READ_UNKNOWN_ENUM_VALUES_AS_NULL, true)
+ .configure(REQUIRE_SETTERS_FOR_GETTERS, true)
+ .setPropertyNamingStrategy(new PropertyNamingStrategy() {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public String nameForSetterMethod(MapperConfig<?> config,
+ AnnotatedMethod method, String defaultName) {
+ return method.getName().substring(3);
+ }
+
+ @Override
+ public String nameForGetterMethod(MapperConfig<?> config,
+ AnnotatedMethod method, String defaultName) {
+ return method.getName().substring(3);
+ }
+ }).setTimeZone(TimeZone.getDefault());
+
+ /**
+ * constructor
+ *
+ * @param taskExecutionContext taskExecutionContext
+ */
+ protected EmrTask(TaskRequest taskExecutionContext) {
+
+ super(taskExecutionContext);
+ this.taskExecutionContext = taskExecutionContext;
+
+ }
+
+ @Override
+ public void init() {
+ logger.info("emr task params:{}", taskExecutionContext.getTaskParams());
+ emrParameters = JSONUtils.parseObject(taskExecutionContext.getTaskParams(), EmrParameters.class);
+ if (emrParameters == null || !emrParameters.checkParameters()) {
+ throw new EmrTaskException("emr task params is not valid");
+ }
+ emrClient = createEmrClient();
+ }
+
+ @Override
+ public void handle() throws InterruptedException {
+ ClusterStatus clusterStatus = null;
+ try {
+ RunJobFlowRequest runJobFlowRequest = createRunJobFlowRequest();
+
+ // submit runJobFlowRequest to aws
+ RunJobFlowResult result = emrClient.runJobFlow(runJobFlowRequest);
+
+ clusterId = result.getJobFlowId();
+
+ clusterStatus = getClusterStatus();
+
+ while (waitingStateSet.contains(clusterStatus.getState())) {
+ TimeUnit.SECONDS.sleep(10);
+ clusterStatus = getClusterStatus();
+ }
+
+ } catch (EmrTaskException | SdkBaseException e) {
+ logger.error("emr task submit failed with error", e);
+ setExitStatusCode(TaskConstants.EXIT_CODE_FAILURE);
+ } finally {
+ if (clusterStatus != null) {
+ calculateExitStatusCode(clusterStatus);
+ logger.info("emr task finished with cluster status : {}", clusterStatus);
+ }
+ }
+ }
+
+ /**
+ * parse json string to RunJobFlowRequest
+ *
+ * @return RunJobFlowRequest
+ */
+ private RunJobFlowRequest createRunJobFlowRequest() {
+
+ final RunJobFlowRequest runJobFlowRequest;
+ try {
+ runJobFlowRequest = objectMapper.readValue(emrParameters.getJobFlowDefineJson(), RunJobFlowRequest.class);
+ } catch (JsonProcessingException e) {
+ throw new EmrTaskException("can not parse RunJobFlowRequest from json", e);
+ }
+
+ return runJobFlowRequest;
+ }
+
+ /**
+ * calculate task exitStatusCode
+ *
+ * @param clusterStatus aws emr cluster status
+ */
+ private void calculateExitStatusCode(ClusterStatus clusterStatus) {
+ String state = clusterStatus.getState();
+ ClusterStateChangeReason stateChangeReason = clusterStatus.getStateChangeReason();
+ ClusterState clusterState = ClusterState.valueOf(state);
+ int exitStatusCode;
+ switch (clusterState) {
+ case TERMINATED:
+ case TERMINATING:
+ String code = stateChangeReason.getCode();
+ if (code != null && code.equalsIgnoreCase(ClusterStateChangeReasonCode.ALL_STEPS_COMPLETED.toString())) {
+ exitStatusCode = TaskConstants.EXIT_CODE_SUCCESS;
+ } else {
+ exitStatusCode = TaskConstants.EXIT_CODE_KILL;
+ }
+ break;
+ case TERMINATED_WITH_ERRORS:
+ exitStatusCode = TaskConstants.EXIT_CODE_FAILURE;
+ break;
+ default:
+ exitStatusCode = TaskConstants.EXIT_CODE_SUCCESS;
+ break;
+ }
+ setExitStatusCode(exitStatusCode);
+ }
+
+ private ClusterStatus getClusterStatus() {
+ DescribeClusterRequest describeClusterRequest = new DescribeClusterRequest().withClusterId(clusterId);
+ DescribeClusterResult result = emrClient.describeCluster(describeClusterRequest);
+ if (result == null) {
+ throw new EmrTaskException("fetch cluster status failed");
+ }
+ ClusterStatus clusterStatus = result.getCluster().getStatus();
+ logger.info("emr cluster [clusterId:{}] running with status:{}", clusterId, clusterStatus);
+ return clusterStatus;
+
+ }
+
+ @Override
+ public AbstractParameters getParameters() {
+ return emrParameters;
+ }
+
+ /**
+ * create emr client from aws named profiles file
+ *
+ * @return AmazonElasticMapReduce
+ */
+ private AmazonElasticMapReduce createEmrClient() {
+
+ final String awsAccessKeyId = PropertyUtils.getString(TaskConstants.AWS_ACCESS_KEY_ID);
+ final String awsSecretAccessKey = PropertyUtils.getString(TaskConstants.AWS_SECRET_ACCESS_KEY);
+ final String awsRegion = PropertyUtils.getString(TaskConstants.AWS_REGION);
+ final BasicAWSCredentials basicAWSCredentials = new BasicAWSCredentials(awsAccessKeyId, awsSecretAccessKey);
+ final AWSCredentialsProvider awsCredentialsProvider = new AWSStaticCredentialsProvider(basicAWSCredentials);
+ // create an EMR client
+ return AmazonElasticMapReduceClientBuilder.standard()
+ .withCredentials(awsCredentialsProvider)
+ .withRegion(awsRegion)
+ .build();
+ }
+
+ @Override
+ public void cancelApplication(boolean status) throws Exception {
+ super.cancelApplication(status);
+
+ logger.info("trying terminate job flow ");
Review comment:
```suggestion
logger.info("trying terminate job flow, taskId:{}, clusterId:{}", taskId, clusterId);
```
##########
File path: dolphinscheduler-task-plugin/dolphinscheduler-task-emr/src/main/java/org/apache/dolphinscheduler/plugin/task/emr/EmrTask.java
##########
@@ -0,0 +1,249 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.dolphinscheduler.plugin.task.emr;
+
+import static com.fasterxml.jackson.databind.DeserializationFeature.ACCEPT_EMPTY_ARRAY_AS_NULL_OBJECT;
+import static com.fasterxml.jackson.databind.DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES;
+import static com.fasterxml.jackson.databind.DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_AS_NULL;
+import static com.fasterxml.jackson.databind.MapperFeature.REQUIRE_SETTERS_FOR_GETTERS;
+
+import org.apache.dolphinscheduler.plugin.task.api.AbstractTaskExecutor;
+import org.apache.dolphinscheduler.spi.task.AbstractParameters;
+import org.apache.dolphinscheduler.spi.task.TaskConstants;
+import org.apache.dolphinscheduler.spi.task.request.TaskRequest;
+import org.apache.dolphinscheduler.spi.utils.JSONUtils;
+import org.apache.dolphinscheduler.spi.utils.PropertyUtils;
+
+import java.util.HashSet;
+import java.util.TimeZone;
+import java.util.concurrent.TimeUnit;
+
+import com.amazonaws.SdkBaseException;
+import com.amazonaws.auth.AWSCredentialsProvider;
+import com.amazonaws.auth.AWSStaticCredentialsProvider;
+import com.amazonaws.auth.BasicAWSCredentials;
+import com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduce;
+import com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduceClientBuilder;
+import com.amazonaws.services.elasticmapreduce.model.ClusterState;
+import com.amazonaws.services.elasticmapreduce.model.ClusterStateChangeReason;
+import com.amazonaws.services.elasticmapreduce.model.ClusterStateChangeReasonCode;
+import com.amazonaws.services.elasticmapreduce.model.ClusterStatus;
+import com.amazonaws.services.elasticmapreduce.model.DescribeClusterRequest;
+import com.amazonaws.services.elasticmapreduce.model.DescribeClusterResult;
+import com.amazonaws.services.elasticmapreduce.model.RunJobFlowRequest;
+import com.amazonaws.services.elasticmapreduce.model.RunJobFlowResult;
+import com.amazonaws.services.elasticmapreduce.model.TerminateJobFlowsRequest;
+import com.amazonaws.services.elasticmapreduce.model.TerminateJobFlowsResult;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.PropertyNamingStrategy;
+import com.fasterxml.jackson.databind.cfg.MapperConfig;
+import com.fasterxml.jackson.databind.introspect.AnnotatedMethod;
+import com.google.common.collect.Sets;
+
+public class EmrTask extends AbstractTaskExecutor {
+
+ /**
+ * taskExecutionContext
+ */
+ private final TaskRequest taskExecutionContext;
+ /**
+ * emr parameters
+ */
+ private EmrParameters emrParameters;
+ private AmazonElasticMapReduce emrClient;
+
+ private String clusterId;
+
+ private final HashSet<String> waitingStateSet = Sets.newHashSet(
+ ClusterState.STARTING.toString(),
+ ClusterState.BOOTSTRAPPING.toString(),
+ ClusterState.RUNNING.toString()
+ );
+
+ /**
+ * config ObjectMapper features and propertyNamingStrategy
+ * support capital letters parse
+ */
+ private static final ObjectMapper objectMapper = new ObjectMapper()
+ .configure(FAIL_ON_UNKNOWN_PROPERTIES, false)
+ .configure(ACCEPT_EMPTY_ARRAY_AS_NULL_OBJECT, true)
+ .configure(READ_UNKNOWN_ENUM_VALUES_AS_NULL, true)
+ .configure(REQUIRE_SETTERS_FOR_GETTERS, true)
+ .setPropertyNamingStrategy(new PropertyNamingStrategy() {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public String nameForSetterMethod(MapperConfig<?> config,
+ AnnotatedMethod method, String defaultName) {
+ return method.getName().substring(3);
+ }
+
+ @Override
+ public String nameForGetterMethod(MapperConfig<?> config,
+ AnnotatedMethod method, String defaultName) {
+ return method.getName().substring(3);
+ }
+ }).setTimeZone(TimeZone.getDefault());
+
+ /**
+ * constructor
+ *
+ * @param taskExecutionContext taskExecutionContext
+ */
+ protected EmrTask(TaskRequest taskExecutionContext) {
+
+ super(taskExecutionContext);
+ this.taskExecutionContext = taskExecutionContext;
+
+ }
+
+ @Override
+ public void init() {
+ logger.info("emr task params:{}", taskExecutionContext.getTaskParams());
+ emrParameters = JSONUtils.parseObject(taskExecutionContext.getTaskParams(), EmrParameters.class);
+ if (emrParameters == null || !emrParameters.checkParameters()) {
+ throw new EmrTaskException("emr task params is not valid");
+ }
+ emrClient = createEmrClient();
+ }
+
+ @Override
+ public void handle() throws InterruptedException {
+ ClusterStatus clusterStatus = null;
+ try {
+ RunJobFlowRequest runJobFlowRequest = createRunJobFlowRequest();
+
+ // submit runJobFlowRequest to aws
+ RunJobFlowResult result = emrClient.runJobFlow(runJobFlowRequest);
+
+ clusterId = result.getJobFlowId();
+
+ clusterStatus = getClusterStatus();
+
+ while (waitingStateSet.contains(clusterStatus.getState())) {
+ TimeUnit.SECONDS.sleep(10);
+ clusterStatus = getClusterStatus();
+ }
+
+ } catch (EmrTaskException | SdkBaseException e) {
+ logger.error("emr task submit failed with error", e);
+ setExitStatusCode(TaskConstants.EXIT_CODE_FAILURE);
+ } finally {
+ if (clusterStatus != null) {
+ calculateExitStatusCode(clusterStatus);
+ logger.info("emr task finished with cluster status : {}", clusterStatus);
+ }
+ }
+ }
+
+ /**
+ * parse json string to RunJobFlowRequest
+ *
+ * @return RunJobFlowRequest
+ */
+ private RunJobFlowRequest createRunJobFlowRequest() {
+
+ final RunJobFlowRequest runJobFlowRequest;
+ try {
+ runJobFlowRequest = objectMapper.readValue(emrParameters.getJobFlowDefineJson(), RunJobFlowRequest.class);
+ } catch (JsonProcessingException e) {
+ throw new EmrTaskException("can not parse RunJobFlowRequest from json", e);
+ }
+
+ return runJobFlowRequest;
+ }
+
+ /**
+ * calculate task exitStatusCode
+ *
+ * @param clusterStatus aws emr cluster status
+ */
+ private void calculateExitStatusCode(ClusterStatus clusterStatus) {
+ String state = clusterStatus.getState();
+ ClusterStateChangeReason stateChangeReason = clusterStatus.getStateChangeReason();
+ ClusterState clusterState = ClusterState.valueOf(state);
+ int exitStatusCode;
+ switch (clusterState) {
+ case TERMINATED:
+ case TERMINATING:
+ String code = stateChangeReason.getCode();
+ if (code != null && code.equalsIgnoreCase(ClusterStateChangeReasonCode.ALL_STEPS_COMPLETED.toString())) {
+ exitStatusCode = TaskConstants.EXIT_CODE_SUCCESS;
+ } else {
+ exitStatusCode = TaskConstants.EXIT_CODE_KILL;
+ }
+ break;
+ case TERMINATED_WITH_ERRORS:
+ exitStatusCode = TaskConstants.EXIT_CODE_FAILURE;
+ break;
+ default:
+ exitStatusCode = TaskConstants.EXIT_CODE_SUCCESS;
Review comment:
Is it OK of default success? If other state add in the future, it will be wrong. What do you think?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@dolphinscheduler.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [dolphinscheduler] sonarcloud[bot] commented on pull request #8503: [Feature-8485][task-plugin] add EMR task plugin to support submit task to AWS EMR
Posted by GitBox <gi...@apache.org>.
sonarcloud[bot] commented on pull request #8503:
URL: https://github.com/apache/dolphinscheduler/pull/8503#issuecomment-1049722984
SonarCloud Quality Gate failed. ![Quality Gate failed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/failed-16px.png 'Quality Gate failed')
[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG)
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY)
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT)
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL) [2 Code Smells](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL)
[![68.3%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/60-16px.png '68.3%')](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_coverage&view=list) [68.3% Coverage](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_coverage&view=list)
[![8.1%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/10-16px.png '8.1%')](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_duplicated_lines_density&view=list) [8.1% Duplication](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_duplicated_lines_density&view=list)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@dolphinscheduler.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [dolphinscheduler] sonarcloud[bot] removed a comment on pull request #8503: [Feature-8485][task-plugin] add EMR task plugin to support submit task to AWS EMR
Posted by GitBox <gi...@apache.org>.
sonarcloud[bot] removed a comment on pull request #8503:
URL: https://github.com/apache/dolphinscheduler/pull/8503#issuecomment-1049722984
SonarCloud Quality Gate failed. ![Quality Gate failed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/failed-16px.png 'Quality Gate failed')
[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG)
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY)
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT)
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL) [2 Code Smells](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL)
[![68.3%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/60-16px.png '68.3%')](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_coverage&view=list) [68.3% Coverage](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_coverage&view=list)
[![8.1%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/10-16px.png '8.1%')](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_duplicated_lines_density&view=list) [8.1% Duplication](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_duplicated_lines_density&view=list)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@dolphinscheduler.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [dolphinscheduler] sonarcloud[bot] removed a comment on pull request #8503: [Feature-8485][task-plugin] add EMR task plugin to support submit task to AWS EMR
Posted by GitBox <gi...@apache.org>.
sonarcloud[bot] removed a comment on pull request #8503:
URL: https://github.com/apache/dolphinscheduler/pull/8503#issuecomment-1049612775
SonarCloud Quality Gate failed. ![Quality Gate failed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/failed-16px.png 'Quality Gate failed')
[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG)
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY)
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT)
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL) [2 Code Smells](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL)
[![69.0%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/60-16px.png '69.0%')](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_coverage&view=list) [69.0% Coverage](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_coverage&view=list)
[![8.1%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/10-16px.png '8.1%')](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_duplicated_lines_density&view=list) [8.1% Duplication](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_duplicated_lines_density&view=list)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@dolphinscheduler.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [dolphinscheduler] sonarcloud[bot] commented on pull request #8503: [Feature-8485][task-plugin] add EMR task plugin to support submit task to AWS EMR
Posted by GitBox <gi...@apache.org>.
sonarcloud[bot] commented on pull request #8503:
URL: https://github.com/apache/dolphinscheduler/pull/8503#issuecomment-1054112383
SonarCloud Quality Gate failed. ![Quality Gate failed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/failed-16px.png 'Quality Gate failed')
[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG)
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY)
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT)
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL) [3 Code Smells](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL)
[![68.3%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/60-16px.png '68.3%')](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_coverage&view=list) [68.3% Coverage](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_coverage&view=list)
[![7.9%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/10-16px.png '7.9%')](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_duplicated_lines_density&view=list) [7.9% Duplication](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_duplicated_lines_density&view=list)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@dolphinscheduler.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [dolphinscheduler] codecov-commenter edited a comment on pull request #8503: [Feature-8485][task-plugin] add EMR task plugin to support submit task to AWS EMR
Posted by GitBox <gi...@apache.org>.
codecov-commenter edited a comment on pull request #8503:
URL: https://github.com/apache/dolphinscheduler/pull/8503#issuecomment-1049604747
# [Codecov](https://codecov.io/gh/apache/dolphinscheduler/pull/8503?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) Report
> Merging [#8503](https://codecov.io/gh/apache/dolphinscheduler/pull/8503?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) (796203c) into [dev](https://codecov.io/gh/apache/dolphinscheduler/commit/60ddede6a627b1d88b81194bbb75ef0cd04c8f3c?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) (60ddede) will **increase** coverage by `0.06%`.
> The diff coverage is `65.13%`.
[![Impacted file tree graph](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/graphs/tree.svg?width=650&height=150&src=pr&token=bv9iXXRLi9&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation)](https://codecov.io/gh/apache/dolphinscheduler/pull/8503?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation)
```diff
@@ Coverage Diff @@
## dev #8503 +/- ##
============================================
+ Coverage 45.38% 45.44% +0.06%
- Complexity 4031 4051 +20
============================================
Files 686 692 +6
Lines 26725 26843 +118
Branches 2870 2876 +6
============================================
+ Hits 12130 12200 +70
- Misses 13451 13497 +46
- Partials 1144 1146 +2
```
| [Impacted Files](https://codecov.io/gh/apache/dolphinscheduler/pull/8503?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) | Coverage Δ | |
|---|---|---|
| [...olphinscheduler/common/task/emr/EmrParameters.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci1jb21tb24vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2RvbHBoaW5zY2hlZHVsZXIvY29tbW9uL3Rhc2svZW1yL0VtclBhcmFtZXRlcnMuamF2YQ==) | `0.00% <0.00%> (ø)` | |
| [...hinscheduler/common/utils/TaskParametersUtils.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci1jb21tb24vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2RvbHBoaW5zY2hlZHVsZXIvY29tbW9uL3V0aWxzL1Rhc2tQYXJhbWV0ZXJzVXRpbHMuamF2YQ==) | `52.17% <0.00%> (-2.38%)` | :arrow_down: |
| [...pache/dolphinscheduler/spi/task/TaskConstants.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci1zcGkvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2RvbHBoaW5zY2hlZHVsZXIvc3BpL3Rhc2svVGFza0NvbnN0YW50cy5qYXZh) | `0.00% <ø> (ø)` | |
| [...lphinscheduler/plugin/task/emr/EmrTaskChannel.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci10YXNrLXBsdWdpbi9kb2xwaGluc2NoZWR1bGVyLXRhc2stZW1yL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9kb2xwaGluc2NoZWR1bGVyL3BsdWdpbi90YXNrL2Vtci9FbXJUYXNrQ2hhbm5lbC5qYXZh) | `0.00% <0.00%> (ø)` | |
| [...heduler/plugin/task/emr/EmrTaskChannelFactory.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci10YXNrLXBsdWdpbi9kb2xwaGluc2NoZWR1bGVyLXRhc2stZW1yL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9kb2xwaGluc2NoZWR1bGVyL3BsdWdpbi90YXNrL2Vtci9FbXJUYXNrQ2hhbm5lbEZhY3RvcnkuamF2YQ==) | `0.00% <0.00%> (ø)` | |
| [...olphinscheduler/plugin/task/emr/EmrParameters.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci10YXNrLXBsdWdpbi9kb2xwaGluc2NoZWR1bGVyLXRhc2stZW1yL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9kb2xwaGluc2NoZWR1bGVyL3BsdWdpbi90YXNrL2Vtci9FbXJQYXJhbWV0ZXJzLmphdmE=) | `71.42% <71.42%> (ø)` | |
| [...ache/dolphinscheduler/plugin/task/emr/EmrTask.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci10YXNrLXBsdWdpbi9kb2xwaGluc2NoZWR1bGVyLXRhc2stZW1yL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9kb2xwaGluc2NoZWR1bGVyL3BsdWdpbi90YXNrL2Vtci9FbXJUYXNrLmphdmE=) | `73.41% <73.41%> (ø)` | |
| [...apache/dolphinscheduler/common/enums/TaskType.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci1jb21tb24vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2RvbHBoaW5zY2hlZHVsZXIvY29tbW9uL2VudW1zL1Rhc2tUeXBlLmphdmE=) | `96.00% <100.00%> (+0.16%)` | :arrow_up: |
| [...hinscheduler/plugin/task/emr/EmrTaskException.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci10YXNrLXBsdWdpbi9kb2xwaGluc2NoZWR1bGVyLXRhc2stZW1yL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9kb2xwaGluc2NoZWR1bGVyL3BsdWdpbi90YXNrL2Vtci9FbXJUYXNrRXhjZXB0aW9uLmphdmE=) | `100.00% <100.00%> (ø)` | |
| [...er/api/service/impl/TaskDefinitionServiceImpl.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci1hcGkvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2RvbHBoaW5zY2hlZHVsZXIvYXBpL3NlcnZpY2UvaW1wbC9UYXNrRGVmaW5pdGlvblNlcnZpY2VJbXBsLmphdmE=) | `22.69% <0.00%> (-0.50%)` | :arrow_down: |
| ... and [2 more](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) | |
------
[Continue to review full report at Codecov](https://codecov.io/gh/apache/dolphinscheduler/pull/8503?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/apache/dolphinscheduler/pull/8503?src=pr&el=footer&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation). Last update [60ddede...796203c](https://codecov.io/gh/apache/dolphinscheduler/pull/8503?src=pr&el=lastupdated&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation).
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@dolphinscheduler.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [dolphinscheduler] sonarcloud[bot] commented on pull request #8503: [Feature-8485][task-plugin] add EMR task plugin to support submit task to AWS EMR
Posted by GitBox <gi...@apache.org>.
sonarcloud[bot] commented on pull request #8503:
URL: https://github.com/apache/dolphinscheduler/pull/8503#issuecomment-1050478753
SonarCloud Quality Gate failed. ![Quality Gate failed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/failed-16px.png 'Quality Gate failed')
[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG)
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY)
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT)
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL) [2 Code Smells](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL)
[![68.3%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/60-16px.png '68.3%')](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_coverage&view=list) [68.3% Coverage](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_coverage&view=list)
[![7.9%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/10-16px.png '7.9%')](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_duplicated_lines_density&view=list) [7.9% Duplication](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_duplicated_lines_density&view=list)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@dolphinscheduler.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [dolphinscheduler] ronyang1985 commented on a change in pull request #8503: [Feature-8485][task-plugin] add EMR task plugin to support submit task to AWS EMR
Posted by GitBox <gi...@apache.org>.
ronyang1985 commented on a change in pull request #8503:
URL: https://github.com/apache/dolphinscheduler/pull/8503#discussion_r813826325
##########
File path: dolphinscheduler-task-plugin/dolphinscheduler-task-emr/src/main/java/org/apache/dolphinscheduler/plugin/task/emr/EmrTask.java
##########
@@ -0,0 +1,249 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.dolphinscheduler.plugin.task.emr;
+
+import static com.fasterxml.jackson.databind.DeserializationFeature.ACCEPT_EMPTY_ARRAY_AS_NULL_OBJECT;
+import static com.fasterxml.jackson.databind.DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES;
+import static com.fasterxml.jackson.databind.DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_AS_NULL;
+import static com.fasterxml.jackson.databind.MapperFeature.REQUIRE_SETTERS_FOR_GETTERS;
+
+import org.apache.dolphinscheduler.plugin.task.api.AbstractTaskExecutor;
+import org.apache.dolphinscheduler.spi.task.AbstractParameters;
+import org.apache.dolphinscheduler.spi.task.TaskConstants;
+import org.apache.dolphinscheduler.spi.task.request.TaskRequest;
+import org.apache.dolphinscheduler.spi.utils.JSONUtils;
+import org.apache.dolphinscheduler.spi.utils.PropertyUtils;
+
+import java.util.HashSet;
+import java.util.TimeZone;
+import java.util.concurrent.TimeUnit;
+
+import com.amazonaws.SdkBaseException;
+import com.amazonaws.auth.AWSCredentialsProvider;
+import com.amazonaws.auth.AWSStaticCredentialsProvider;
+import com.amazonaws.auth.BasicAWSCredentials;
+import com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduce;
+import com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduceClientBuilder;
+import com.amazonaws.services.elasticmapreduce.model.ClusterState;
+import com.amazonaws.services.elasticmapreduce.model.ClusterStateChangeReason;
+import com.amazonaws.services.elasticmapreduce.model.ClusterStateChangeReasonCode;
+import com.amazonaws.services.elasticmapreduce.model.ClusterStatus;
+import com.amazonaws.services.elasticmapreduce.model.DescribeClusterRequest;
+import com.amazonaws.services.elasticmapreduce.model.DescribeClusterResult;
+import com.amazonaws.services.elasticmapreduce.model.RunJobFlowRequest;
+import com.amazonaws.services.elasticmapreduce.model.RunJobFlowResult;
+import com.amazonaws.services.elasticmapreduce.model.TerminateJobFlowsRequest;
+import com.amazonaws.services.elasticmapreduce.model.TerminateJobFlowsResult;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.PropertyNamingStrategy;
+import com.fasterxml.jackson.databind.cfg.MapperConfig;
+import com.fasterxml.jackson.databind.introspect.AnnotatedMethod;
+import com.google.common.collect.Sets;
+
+public class EmrTask extends AbstractTaskExecutor {
+
+ /**
+ * taskExecutionContext
+ */
+ private final TaskRequest taskExecutionContext;
+ /**
+ * emr parameters
+ */
+ private EmrParameters emrParameters;
+ private AmazonElasticMapReduce emrClient;
+
+ private String clusterId;
+
+ private final HashSet<String> waitingStateSet = Sets.newHashSet(
+ ClusterState.STARTING.toString(),
+ ClusterState.BOOTSTRAPPING.toString(),
+ ClusterState.RUNNING.toString()
+ );
+
+ /**
+ * config ObjectMapper features and propertyNamingStrategy
+ * support capital letters parse
+ */
+ private static final ObjectMapper objectMapper = new ObjectMapper()
+ .configure(FAIL_ON_UNKNOWN_PROPERTIES, false)
+ .configure(ACCEPT_EMPTY_ARRAY_AS_NULL_OBJECT, true)
+ .configure(READ_UNKNOWN_ENUM_VALUES_AS_NULL, true)
+ .configure(REQUIRE_SETTERS_FOR_GETTERS, true)
+ .setPropertyNamingStrategy(new PropertyNamingStrategy() {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public String nameForSetterMethod(MapperConfig<?> config,
+ AnnotatedMethod method, String defaultName) {
+ return method.getName().substring(3);
Review comment:
change to use PropertyNamingStrategy.UpperCamelCaseStrategy
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@dolphinscheduler.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [dolphinscheduler] ronyang1985 commented on pull request #8503: [Feature-8485][task-plugin] add EMR task plugin to support submit task to AWS EMR
Posted by GitBox <gi...@apache.org>.
ronyang1985 commented on pull request #8503:
URL: https://github.com/apache/dolphinscheduler/pull/8503#issuecomment-1054091498
> Clicked the close button by mistake, this PR is ok for me. According to @lenboo said, we can reconstruct the process of task failover in the future. Currently, we can just add `TODO` to describe the possible failover issue in code.
hi, 'TODO' comment was added
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@dolphinscheduler.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [dolphinscheduler] zhongjiajie commented on pull request #8503: [Feature-8485][task-plugin] add EMR task plugin to support submit task to AWS EMR
Posted by GitBox <gi...@apache.org>.
zhongjiajie commented on pull request #8503:
URL: https://github.com/apache/dolphinscheduler/pull/8503#issuecomment-1049591796
> > @ronyang1985 It seems we are without UI part, is there any plan to add UI part
>
> >
>
> @zhongjiajie I am not very good at front-end development, the ui part may be added after ui-next is completed by other contributors?
I got it, cc: @songjianet . I also add the label `miss document` to this PR, to remind us to need to add a document about it
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@dolphinscheduler.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [dolphinscheduler] zhongjiajie commented on pull request #8503: [Feature-8485][task-plugin] add EMR task plugin to support submit task to AWS EMR
Posted by GitBox <gi...@apache.org>.
zhongjiajie commented on pull request #8503:
URL: https://github.com/apache/dolphinscheduler/pull/8503#issuecomment-1049430552
I restart the failing test.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@dolphinscheduler.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [dolphinscheduler] codecov-commenter commented on pull request #8503: [Feature-8485][task-plugin] add EMR task plugin to support submit task to AWS EMR
Posted by GitBox <gi...@apache.org>.
codecov-commenter commented on pull request #8503:
URL: https://github.com/apache/dolphinscheduler/pull/8503#issuecomment-1049604747
# [Codecov](https://codecov.io/gh/apache/dolphinscheduler/pull/8503?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) Report
> Merging [#8503](https://codecov.io/gh/apache/dolphinscheduler/pull/8503?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) (5c8e948) into [dev](https://codecov.io/gh/apache/dolphinscheduler/commit/60ddede6a627b1d88b81194bbb75ef0cd04c8f3c?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) (60ddede) will **increase** coverage by `0.04%`.
> The diff coverage is `65.13%`.
[![Impacted file tree graph](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/graphs/tree.svg?width=650&height=150&src=pr&token=bv9iXXRLi9&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation)](https://codecov.io/gh/apache/dolphinscheduler/pull/8503?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation)
```diff
@@ Coverage Diff @@
## dev #8503 +/- ##
============================================
+ Coverage 45.38% 45.43% +0.04%
- Complexity 4031 4049 +18
============================================
Files 686 692 +6
Lines 26725 26843 +118
Branches 2870 2876 +6
============================================
+ Hits 12130 12196 +66
- Misses 13451 13499 +48
- Partials 1144 1148 +4
```
| [Impacted Files](https://codecov.io/gh/apache/dolphinscheduler/pull/8503?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) | Coverage Δ | |
|---|---|---|
| [...olphinscheduler/common/task/emr/EmrParameters.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci1jb21tb24vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2RvbHBoaW5zY2hlZHVsZXIvY29tbW9uL3Rhc2svZW1yL0VtclBhcmFtZXRlcnMuamF2YQ==) | `0.00% <0.00%> (ø)` | |
| [...hinscheduler/common/utils/TaskParametersUtils.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci1jb21tb24vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2RvbHBoaW5zY2hlZHVsZXIvY29tbW9uL3V0aWxzL1Rhc2tQYXJhbWV0ZXJzVXRpbHMuamF2YQ==) | `52.17% <0.00%> (-2.38%)` | :arrow_down: |
| [...pache/dolphinscheduler/spi/task/TaskConstants.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci1zcGkvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2RvbHBoaW5zY2hlZHVsZXIvc3BpL3Rhc2svVGFza0NvbnN0YW50cy5qYXZh) | `0.00% <ø> (ø)` | |
| [...lphinscheduler/plugin/task/emr/EmrTaskChannel.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci10YXNrLXBsdWdpbi9kb2xwaGluc2NoZWR1bGVyLXRhc2stZW1yL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9kb2xwaGluc2NoZWR1bGVyL3BsdWdpbi90YXNrL2Vtci9FbXJUYXNrQ2hhbm5lbC5qYXZh) | `0.00% <0.00%> (ø)` | |
| [...heduler/plugin/task/emr/EmrTaskChannelFactory.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci10YXNrLXBsdWdpbi9kb2xwaGluc2NoZWR1bGVyLXRhc2stZW1yL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9kb2xwaGluc2NoZWR1bGVyL3BsdWdpbi90YXNrL2Vtci9FbXJUYXNrQ2hhbm5lbEZhY3RvcnkuamF2YQ==) | `0.00% <0.00%> (ø)` | |
| [...olphinscheduler/plugin/task/emr/EmrParameters.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci10YXNrLXBsdWdpbi9kb2xwaGluc2NoZWR1bGVyLXRhc2stZW1yL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9kb2xwaGluc2NoZWR1bGVyL3BsdWdpbi90YXNrL2Vtci9FbXJQYXJhbWV0ZXJzLmphdmE=) | `71.42% <71.42%> (ø)` | |
| [...ache/dolphinscheduler/plugin/task/emr/EmrTask.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci10YXNrLXBsdWdpbi9kb2xwaGluc2NoZWR1bGVyLXRhc2stZW1yL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9kb2xwaGluc2NoZWR1bGVyL3BsdWdpbi90YXNrL2Vtci9FbXJUYXNrLmphdmE=) | `73.41% <73.41%> (ø)` | |
| [...apache/dolphinscheduler/common/enums/TaskType.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci1jb21tb24vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2RvbHBoaW5zY2hlZHVsZXIvY29tbW9uL2VudW1zL1Rhc2tUeXBlLmphdmE=) | `96.00% <100.00%> (+0.16%)` | :arrow_up: |
| [...hinscheduler/plugin/task/emr/EmrTaskException.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci10YXNrLXBsdWdpbi9kb2xwaGluc2NoZWR1bGVyLXRhc2stZW1yL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9kb2xwaGluc2NoZWR1bGVyL3BsdWdpbi90YXNrL2Vtci9FbXJUYXNrRXhjZXB0aW9uLmphdmE=) | `100.00% <100.00%> (ø)` | |
| [...e/dolphinscheduler/remote/NettyRemotingClient.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci1yZW1vdGUvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2RvbHBoaW5zY2hlZHVsZXIvcmVtb3RlL05ldHR5UmVtb3RpbmdDbGllbnQuamF2YQ==) | `50.70% <0.00%> (-2.82%)` | :arrow_down: |
| ... and [3 more](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) | |
------
[Continue to review full report at Codecov](https://codecov.io/gh/apache/dolphinscheduler/pull/8503?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/apache/dolphinscheduler/pull/8503?src=pr&el=footer&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation). Last update [60ddede...5c8e948](https://codecov.io/gh/apache/dolphinscheduler/pull/8503?src=pr&el=lastupdated&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation).
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@dolphinscheduler.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [dolphinscheduler] sonarcloud[bot] commented on pull request #8503: [Feature-8485][task-plugin] add EMR task plugin to support submit task to AWS EMR
Posted by GitBox <gi...@apache.org>.
sonarcloud[bot] commented on pull request #8503:
URL: https://github.com/apache/dolphinscheduler/pull/8503#issuecomment-1049824980
SonarCloud Quality Gate failed. ![Quality Gate failed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/failed-16px.png 'Quality Gate failed')
[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG)
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY)
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT)
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL) [2 Code Smells](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL)
[![68.3%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/60-16px.png '68.3%')](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_coverage&view=list) [68.3% Coverage](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_coverage&view=list)
[![8.3%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/10-16px.png '8.3%')](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_duplicated_lines_density&view=list) [8.3% Duplication](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_duplicated_lines_density&view=list)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@dolphinscheduler.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [dolphinscheduler] ronyang1985 commented on pull request #8503: [Feature-8485][task-plugin] add EMR task plugin to support submit task to AWS EMR
Posted by GitBox <gi...@apache.org>.
ronyang1985 commented on pull request #8503:
URL: https://github.com/apache/dolphinscheduler/pull/8503#issuecomment-1049509765
> @ronyang1985 It seems we are without UI part, is there any plan to add UI part
>
@zhongjiajie I am not very good at front-end development, the ui part may be added after ui-next is completed by other contributors?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@dolphinscheduler.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [dolphinscheduler] codecov-commenter edited a comment on pull request #8503: [Feature-8485][task-plugin] add EMR task plugin to support submit task to AWS EMR
Posted by GitBox <gi...@apache.org>.
codecov-commenter edited a comment on pull request #8503:
URL: https://github.com/apache/dolphinscheduler/pull/8503#issuecomment-1049604747
# [Codecov](https://codecov.io/gh/apache/dolphinscheduler/pull/8503?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) Report
> Merging [#8503](https://codecov.io/gh/apache/dolphinscheduler/pull/8503?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) (77d4b3d) into [dev](https://codecov.io/gh/apache/dolphinscheduler/commit/60ddede6a627b1d88b81194bbb75ef0cd04c8f3c?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) (60ddede) will **decrease** coverage by `0.07%`.
> The diff coverage is `64.15%`.
[![Impacted file tree graph](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/graphs/tree.svg?width=650&height=150&src=pr&token=bv9iXXRLi9&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation)](https://codecov.io/gh/apache/dolphinscheduler/pull/8503?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation)
```diff
@@ Coverage Diff @@
## dev #8503 +/- ##
============================================
- Coverage 45.38% 45.31% -0.08%
- Complexity 4031 4059 +28
============================================
Files 686 696 +10
Lines 26725 26978 +253
Branches 2870 2889 +19
============================================
+ Hits 12130 12224 +94
- Misses 13451 13602 +151
- Partials 1144 1152 +8
```
| [Impacted Files](https://codecov.io/gh/apache/dolphinscheduler/pull/8503?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) | Coverage Δ | |
|---|---|---|
| [...olphinscheduler/common/task/emr/EmrParameters.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci1jb21tb24vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2RvbHBoaW5zY2hlZHVsZXIvY29tbW9uL3Rhc2svZW1yL0VtclBhcmFtZXRlcnMuamF2YQ==) | `0.00% <0.00%> (ø)` | |
| [...hinscheduler/common/utils/TaskParametersUtils.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci1jb21tb24vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2RvbHBoaW5zY2hlZHVsZXIvY29tbW9uL3V0aWxzL1Rhc2tQYXJhbWV0ZXJzVXRpbHMuamF2YQ==) | `52.17% <0.00%> (-2.38%)` | :arrow_down: |
| [...pache/dolphinscheduler/spi/task/TaskConstants.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci1zcGkvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2RvbHBoaW5zY2hlZHVsZXIvc3BpL3Rhc2svVGFza0NvbnN0YW50cy5qYXZh) | `0.00% <ø> (ø)` | |
| [...lphinscheduler/plugin/task/emr/EmrTaskChannel.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci10YXNrLXBsdWdpbi9kb2xwaGluc2NoZWR1bGVyLXRhc2stZW1yL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9kb2xwaGluc2NoZWR1bGVyL3BsdWdpbi90YXNrL2Vtci9FbXJUYXNrQ2hhbm5lbC5qYXZh) | `0.00% <0.00%> (ø)` | |
| [...heduler/plugin/task/emr/EmrTaskChannelFactory.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci10YXNrLXBsdWdpbi9kb2xwaGluc2NoZWR1bGVyLXRhc2stZW1yL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9kb2xwaGluc2NoZWR1bGVyL3BsdWdpbi90YXNrL2Vtci9FbXJUYXNrQ2hhbm5lbEZhY3RvcnkuamF2YQ==) | `0.00% <0.00%> (ø)` | |
| [...olphinscheduler/plugin/task/emr/EmrParameters.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci10YXNrLXBsdWdpbi9kb2xwaGluc2NoZWR1bGVyLXRhc2stZW1yL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9kb2xwaGluc2NoZWR1bGVyL3BsdWdpbi90YXNrL2Vtci9FbXJQYXJhbWV0ZXJzLmphdmE=) | `71.42% <71.42%> (ø)` | |
| [...ache/dolphinscheduler/plugin/task/emr/EmrTask.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci10YXNrLXBsdWdpbi9kb2xwaGluc2NoZWR1bGVyLXRhc2stZW1yL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9kb2xwaGluc2NoZWR1bGVyL3BsdWdpbi90YXNrL2Vtci9FbXJUYXNrLmphdmE=) | `72.36% <72.36%> (ø)` | |
| [...apache/dolphinscheduler/common/enums/TaskType.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci1jb21tb24vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2RvbHBoaW5zY2hlZHVsZXIvY29tbW9uL2VudW1zL1Rhc2tUeXBlLmphdmE=) | `96.00% <100.00%> (+0.16%)` | :arrow_up: |
| [...hinscheduler/plugin/task/emr/EmrTaskException.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci10YXNrLXBsdWdpbi9kb2xwaGluc2NoZWR1bGVyLXRhc2stZW1yL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9kb2xwaGluc2NoZWR1bGVyL3BsdWdpbi90YXNrL2Vtci9FbXJUYXNrRXhjZXB0aW9uLmphdmE=) | `100.00% <100.00%> (ø)` | |
| [...cheduler/api/service/impl/ExecutorServiceImpl.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci1hcGkvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2RvbHBoaW5zY2hlZHVsZXIvYXBpL3NlcnZpY2UvaW1wbC9FeGVjdXRvclNlcnZpY2VJbXBsLmphdmE=) | `41.96% <0.00%> (-5.14%)` | :arrow_down: |
| ... and [73 more](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) | |
------
[Continue to review full report at Codecov](https://codecov.io/gh/apache/dolphinscheduler/pull/8503?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/apache/dolphinscheduler/pull/8503?src=pr&el=footer&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation). Last update [60ddede...77d4b3d](https://codecov.io/gh/apache/dolphinscheduler/pull/8503?src=pr&el=lastupdated&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation).
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@dolphinscheduler.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [dolphinscheduler] codecov-commenter edited a comment on pull request #8503: [Feature-8485][task-plugin] add EMR task plugin to support submit task to AWS EMR
Posted by GitBox <gi...@apache.org>.
codecov-commenter edited a comment on pull request #8503:
URL: https://github.com/apache/dolphinscheduler/pull/8503#issuecomment-1049604747
# [Codecov](https://codecov.io/gh/apache/dolphinscheduler/pull/8503?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) Report
> Merging [#8503](https://codecov.io/gh/apache/dolphinscheduler/pull/8503?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) (3393313) into [dev](https://codecov.io/gh/apache/dolphinscheduler/commit/60ddede6a627b1d88b81194bbb75ef0cd04c8f3c?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) (60ddede) will **increase** coverage by `0.08%`.
> The diff coverage is `64.15%`.
[![Impacted file tree graph](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/graphs/tree.svg?width=650&height=150&src=pr&token=bv9iXXRLi9&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation)](https://codecov.io/gh/apache/dolphinscheduler/pull/8503?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation)
```diff
@@ Coverage Diff @@
## dev #8503 +/- ##
============================================
+ Coverage 45.38% 45.47% +0.08%
- Complexity 4031 4062 +31
============================================
Files 686 694 +8
Lines 26725 26877 +152
Branches 2870 2878 +8
============================================
+ Hits 12130 12221 +91
- Misses 13451 13509 +58
- Partials 1144 1147 +3
```
| [Impacted Files](https://codecov.io/gh/apache/dolphinscheduler/pull/8503?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) | Coverage Δ | |
|---|---|---|
| [...olphinscheduler/common/task/emr/EmrParameters.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci1jb21tb24vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2RvbHBoaW5zY2hlZHVsZXIvY29tbW9uL3Rhc2svZW1yL0VtclBhcmFtZXRlcnMuamF2YQ==) | `0.00% <0.00%> (ø)` | |
| [...hinscheduler/common/utils/TaskParametersUtils.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci1jb21tb24vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2RvbHBoaW5zY2hlZHVsZXIvY29tbW9uL3V0aWxzL1Rhc2tQYXJhbWV0ZXJzVXRpbHMuamF2YQ==) | `52.17% <0.00%> (-2.38%)` | :arrow_down: |
| [...pache/dolphinscheduler/spi/task/TaskConstants.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci1zcGkvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2RvbHBoaW5zY2hlZHVsZXIvc3BpL3Rhc2svVGFza0NvbnN0YW50cy5qYXZh) | `0.00% <ø> (ø)` | |
| [...lphinscheduler/plugin/task/emr/EmrTaskChannel.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci10YXNrLXBsdWdpbi9kb2xwaGluc2NoZWR1bGVyLXRhc2stZW1yL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9kb2xwaGluc2NoZWR1bGVyL3BsdWdpbi90YXNrL2Vtci9FbXJUYXNrQ2hhbm5lbC5qYXZh) | `0.00% <0.00%> (ø)` | |
| [...heduler/plugin/task/emr/EmrTaskChannelFactory.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci10YXNrLXBsdWdpbi9kb2xwaGluc2NoZWR1bGVyLXRhc2stZW1yL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9kb2xwaGluc2NoZWR1bGVyL3BsdWdpbi90YXNrL2Vtci9FbXJUYXNrQ2hhbm5lbEZhY3RvcnkuamF2YQ==) | `0.00% <0.00%> (ø)` | |
| [...olphinscheduler/plugin/task/emr/EmrParameters.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci10YXNrLXBsdWdpbi9kb2xwaGluc2NoZWR1bGVyLXRhc2stZW1yL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9kb2xwaGluc2NoZWR1bGVyL3BsdWdpbi90YXNrL2Vtci9FbXJQYXJhbWV0ZXJzLmphdmE=) | `71.42% <71.42%> (ø)` | |
| [...ache/dolphinscheduler/plugin/task/emr/EmrTask.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci10YXNrLXBsdWdpbi9kb2xwaGluc2NoZWR1bGVyLXRhc2stZW1yL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9kb2xwaGluc2NoZWR1bGVyL3BsdWdpbi90YXNrL2Vtci9FbXJUYXNrLmphdmE=) | `72.36% <72.36%> (ø)` | |
| [...apache/dolphinscheduler/common/enums/TaskType.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci1jb21tb24vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2RvbHBoaW5zY2hlZHVsZXIvY29tbW9uL2VudW1zL1Rhc2tUeXBlLmphdmE=) | `96.00% <100.00%> (+0.16%)` | :arrow_up: |
| [...hinscheduler/plugin/task/emr/EmrTaskException.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci10YXNrLXBsdWdpbi9kb2xwaGluc2NoZWR1bGVyLXRhc2stZW1yL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9kb2xwaGluc2NoZWR1bGVyL3BsdWdpbi90YXNrL2Vtci9FbXJUYXNrRXhjZXB0aW9uLmphdmE=) | `100.00% <100.00%> (ø)` | |
| [...org/apache/dolphinscheduler/alert/AlertServer.java](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZG9scGhpbnNjaGVkdWxlci1hbGVydC9kb2xwaGluc2NoZWR1bGVyLWFsZXJ0LXNlcnZlci9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvZG9scGhpbnNjaGVkdWxlci9hbGVydC9BbGVydFNlcnZlci5qYXZh) | `56.41% <0.00%> (-3.05%)` | :arrow_down: |
| ... and [65 more](https://codecov.io/gh/apache/dolphinscheduler/pull/8503/diff?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) | |
------
[Continue to review full report at Codecov](https://codecov.io/gh/apache/dolphinscheduler/pull/8503?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/apache/dolphinscheduler/pull/8503?src=pr&el=footer&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation). Last update [60ddede...3393313](https://codecov.io/gh/apache/dolphinscheduler/pull/8503?src=pr&el=lastupdated&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation).
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@dolphinscheduler.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [dolphinscheduler] sonarcloud[bot] commented on pull request #8503: [Feature-8485][task-plugin] add EMR task plugin to support submit task to AWS EMR
Posted by GitBox <gi...@apache.org>.
sonarcloud[bot] commented on pull request #8503:
URL: https://github.com/apache/dolphinscheduler/pull/8503#issuecomment-1048531380
SonarCloud Quality Gate failed. ![Quality Gate failed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/failed-16px.png 'Quality Gate failed')
[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=BUG)
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=VULNERABILITY)
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=SECURITY_HOTSPOT)
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL) [2 Code Smells](https://sonarcloud.io/project/issues?id=apache-dolphinscheduler&pullRequest=8503&resolved=false&types=CODE_SMELL)
[![68.1%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/60-16px.png '68.1%')](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_coverage&view=list) [68.1% Coverage](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_coverage&view=list)
[![8.5%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/10-16px.png '8.5%')](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_duplicated_lines_density&view=list) [8.5% Duplication](https://sonarcloud.io/component_measures?id=apache-dolphinscheduler&pullRequest=8503&metric=new_duplicated_lines_density&view=list)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@dolphinscheduler.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [dolphinscheduler] ruanwenjun commented on a change in pull request #8503: [Feature-8485][task-plugin] add EMR task plugin to support submit task to AWS EMR
Posted by GitBox <gi...@apache.org>.
ruanwenjun commented on a change in pull request #8503:
URL: https://github.com/apache/dolphinscheduler/pull/8503#discussion_r813708463
##########
File path: dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/enums/TaskType.java
##########
@@ -58,7 +59,8 @@
SEATUNNEL(13, "SEATUNNEL"),
SWITCH(14, "SWITCH"),
PIGEON(15, "PIGEON"),
- DATA_QUALITY(16, "DATA_QUALITY");
+ DATA_QUALITY(16, "DATA_QUALITY"),
+ EMR(17, "EMR");
Review comment:
A small tips, add ',' at the enum end can help to reduce changes when someone a new enum in the future.
```suggestion
DATA_QUALITY(16, "DATA_QUALITY"),
EMR(17, "EMR"),
;
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@dolphinscheduler.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [dolphinscheduler] ronyang1985 commented on a change in pull request #8503: [Feature-8485][task-plugin] add EMR task plugin to support submit task to AWS EMR
Posted by GitBox <gi...@apache.org>.
ronyang1985 commented on a change in pull request #8503:
URL: https://github.com/apache/dolphinscheduler/pull/8503#discussion_r813825746
##########
File path: dolphinscheduler-task-plugin/dolphinscheduler-task-emr/src/main/java/org/apache/dolphinscheduler/plugin/task/emr/EmrTask.java
##########
@@ -0,0 +1,249 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.dolphinscheduler.plugin.task.emr;
+
+import static com.fasterxml.jackson.databind.DeserializationFeature.ACCEPT_EMPTY_ARRAY_AS_NULL_OBJECT;
+import static com.fasterxml.jackson.databind.DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES;
+import static com.fasterxml.jackson.databind.DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_AS_NULL;
+import static com.fasterxml.jackson.databind.MapperFeature.REQUIRE_SETTERS_FOR_GETTERS;
+
+import org.apache.dolphinscheduler.plugin.task.api.AbstractTaskExecutor;
+import org.apache.dolphinscheduler.spi.task.AbstractParameters;
+import org.apache.dolphinscheduler.spi.task.TaskConstants;
+import org.apache.dolphinscheduler.spi.task.request.TaskRequest;
+import org.apache.dolphinscheduler.spi.utils.JSONUtils;
+import org.apache.dolphinscheduler.spi.utils.PropertyUtils;
+
+import java.util.HashSet;
+import java.util.TimeZone;
+import java.util.concurrent.TimeUnit;
+
+import com.amazonaws.SdkBaseException;
+import com.amazonaws.auth.AWSCredentialsProvider;
+import com.amazonaws.auth.AWSStaticCredentialsProvider;
+import com.amazonaws.auth.BasicAWSCredentials;
+import com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduce;
+import com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduceClientBuilder;
+import com.amazonaws.services.elasticmapreduce.model.ClusterState;
+import com.amazonaws.services.elasticmapreduce.model.ClusterStateChangeReason;
+import com.amazonaws.services.elasticmapreduce.model.ClusterStateChangeReasonCode;
+import com.amazonaws.services.elasticmapreduce.model.ClusterStatus;
+import com.amazonaws.services.elasticmapreduce.model.DescribeClusterRequest;
+import com.amazonaws.services.elasticmapreduce.model.DescribeClusterResult;
+import com.amazonaws.services.elasticmapreduce.model.RunJobFlowRequest;
+import com.amazonaws.services.elasticmapreduce.model.RunJobFlowResult;
+import com.amazonaws.services.elasticmapreduce.model.TerminateJobFlowsRequest;
+import com.amazonaws.services.elasticmapreduce.model.TerminateJobFlowsResult;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.PropertyNamingStrategy;
+import com.fasterxml.jackson.databind.cfg.MapperConfig;
+import com.fasterxml.jackson.databind.introspect.AnnotatedMethod;
+import com.google.common.collect.Sets;
+
+public class EmrTask extends AbstractTaskExecutor {
+
+ /**
+ * taskExecutionContext
+ */
+ private final TaskRequest taskExecutionContext;
+ /**
+ * emr parameters
+ */
+ private EmrParameters emrParameters;
+ private AmazonElasticMapReduce emrClient;
+
+ private String clusterId;
+
+ private final HashSet<String> waitingStateSet = Sets.newHashSet(
+ ClusterState.STARTING.toString(),
+ ClusterState.BOOTSTRAPPING.toString(),
+ ClusterState.RUNNING.toString()
+ );
+
+ /**
+ * config ObjectMapper features and propertyNamingStrategy
+ * support capital letters parse
+ */
+ private static final ObjectMapper objectMapper = new ObjectMapper()
+ .configure(FAIL_ON_UNKNOWN_PROPERTIES, false)
+ .configure(ACCEPT_EMPTY_ARRAY_AS_NULL_OBJECT, true)
+ .configure(READ_UNKNOWN_ENUM_VALUES_AS_NULL, true)
+ .configure(REQUIRE_SETTERS_FOR_GETTERS, true)
+ .setPropertyNamingStrategy(new PropertyNamingStrategy() {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public String nameForSetterMethod(MapperConfig<?> config,
+ AnnotatedMethod method, String defaultName) {
+ return method.getName().substring(3);
+ }
+
+ @Override
+ public String nameForGetterMethod(MapperConfig<?> config,
+ AnnotatedMethod method, String defaultName) {
+ return method.getName().substring(3);
+ }
+ }).setTimeZone(TimeZone.getDefault());
+
+ /**
+ * constructor
+ *
+ * @param taskExecutionContext taskExecutionContext
+ */
+ protected EmrTask(TaskRequest taskExecutionContext) {
+
+ super(taskExecutionContext);
+ this.taskExecutionContext = taskExecutionContext;
+
+ }
+
+ @Override
+ public void init() {
+ logger.info("emr task params:{}", taskExecutionContext.getTaskParams());
+ emrParameters = JSONUtils.parseObject(taskExecutionContext.getTaskParams(), EmrParameters.class);
+ if (emrParameters == null || !emrParameters.checkParameters()) {
+ throw new EmrTaskException("emr task params is not valid");
+ }
+ emrClient = createEmrClient();
+ }
+
+ @Override
+ public void handle() throws InterruptedException {
+ ClusterStatus clusterStatus = null;
+ try {
+ RunJobFlowRequest runJobFlowRequest = createRunJobFlowRequest();
+
+ // submit runJobFlowRequest to aws
+ RunJobFlowResult result = emrClient.runJobFlow(runJobFlowRequest);
+
+ clusterId = result.getJobFlowId();
+
+ clusterStatus = getClusterStatus();
+
+ while (waitingStateSet.contains(clusterStatus.getState())) {
+ TimeUnit.SECONDS.sleep(10);
+ clusterStatus = getClusterStatus();
+ }
+
+ } catch (EmrTaskException | SdkBaseException e) {
+ logger.error("emr task submit failed with error", e);
+ setExitStatusCode(TaskConstants.EXIT_CODE_FAILURE);
+ } finally {
+ if (clusterStatus != null) {
+ calculateExitStatusCode(clusterStatus);
+ logger.info("emr task finished with cluster status : {}", clusterStatus);
+ }
+ }
+ }
+
+ /**
+ * parse json string to RunJobFlowRequest
+ *
+ * @return RunJobFlowRequest
+ */
+ private RunJobFlowRequest createRunJobFlowRequest() {
+
+ final RunJobFlowRequest runJobFlowRequest;
+ try {
+ runJobFlowRequest = objectMapper.readValue(emrParameters.getJobFlowDefineJson(), RunJobFlowRequest.class);
+ } catch (JsonProcessingException e) {
+ throw new EmrTaskException("can not parse RunJobFlowRequest from json", e);
+ }
+
+ return runJobFlowRequest;
+ }
+
+ /**
+ * calculate task exitStatusCode
+ *
+ * @param clusterStatus aws emr cluster status
+ */
+ private void calculateExitStatusCode(ClusterStatus clusterStatus) {
+ String state = clusterStatus.getState();
+ ClusterStateChangeReason stateChangeReason = clusterStatus.getStateChangeReason();
+ ClusterState clusterState = ClusterState.valueOf(state);
+ int exitStatusCode;
+ switch (clusterState) {
+ case TERMINATED:
+ case TERMINATING:
+ String code = stateChangeReason.getCode();
+ if (code != null && code.equalsIgnoreCase(ClusterStateChangeReasonCode.ALL_STEPS_COMPLETED.toString())) {
+ exitStatusCode = TaskConstants.EXIT_CODE_SUCCESS;
+ } else {
+ exitStatusCode = TaskConstants.EXIT_CODE_KILL;
+ }
+ break;
+ case TERMINATED_WITH_ERRORS:
+ exitStatusCode = TaskConstants.EXIT_CODE_FAILURE;
+ break;
+ default:
+ exitStatusCode = TaskConstants.EXIT_CODE_SUCCESS;
Review comment:
accept it
##########
File path: dolphinscheduler-task-plugin/dolphinscheduler-task-emr/src/main/java/org/apache/dolphinscheduler/plugin/task/emr/EmrTask.java
##########
@@ -0,0 +1,249 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.dolphinscheduler.plugin.task.emr;
+
+import static com.fasterxml.jackson.databind.DeserializationFeature.ACCEPT_EMPTY_ARRAY_AS_NULL_OBJECT;
+import static com.fasterxml.jackson.databind.DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES;
+import static com.fasterxml.jackson.databind.DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_AS_NULL;
+import static com.fasterxml.jackson.databind.MapperFeature.REQUIRE_SETTERS_FOR_GETTERS;
+
+import org.apache.dolphinscheduler.plugin.task.api.AbstractTaskExecutor;
+import org.apache.dolphinscheduler.spi.task.AbstractParameters;
+import org.apache.dolphinscheduler.spi.task.TaskConstants;
+import org.apache.dolphinscheduler.spi.task.request.TaskRequest;
+import org.apache.dolphinscheduler.spi.utils.JSONUtils;
+import org.apache.dolphinscheduler.spi.utils.PropertyUtils;
+
+import java.util.HashSet;
+import java.util.TimeZone;
+import java.util.concurrent.TimeUnit;
+
+import com.amazonaws.SdkBaseException;
+import com.amazonaws.auth.AWSCredentialsProvider;
+import com.amazonaws.auth.AWSStaticCredentialsProvider;
+import com.amazonaws.auth.BasicAWSCredentials;
+import com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduce;
+import com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduceClientBuilder;
+import com.amazonaws.services.elasticmapreduce.model.ClusterState;
+import com.amazonaws.services.elasticmapreduce.model.ClusterStateChangeReason;
+import com.amazonaws.services.elasticmapreduce.model.ClusterStateChangeReasonCode;
+import com.amazonaws.services.elasticmapreduce.model.ClusterStatus;
+import com.amazonaws.services.elasticmapreduce.model.DescribeClusterRequest;
+import com.amazonaws.services.elasticmapreduce.model.DescribeClusterResult;
+import com.amazonaws.services.elasticmapreduce.model.RunJobFlowRequest;
+import com.amazonaws.services.elasticmapreduce.model.RunJobFlowResult;
+import com.amazonaws.services.elasticmapreduce.model.TerminateJobFlowsRequest;
+import com.amazonaws.services.elasticmapreduce.model.TerminateJobFlowsResult;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.PropertyNamingStrategy;
+import com.fasterxml.jackson.databind.cfg.MapperConfig;
+import com.fasterxml.jackson.databind.introspect.AnnotatedMethod;
+import com.google.common.collect.Sets;
+
+public class EmrTask extends AbstractTaskExecutor {
+
+ /**
+ * taskExecutionContext
+ */
+ private final TaskRequest taskExecutionContext;
+ /**
+ * emr parameters
+ */
+ private EmrParameters emrParameters;
+ private AmazonElasticMapReduce emrClient;
+
+ private String clusterId;
+
+ private final HashSet<String> waitingStateSet = Sets.newHashSet(
+ ClusterState.STARTING.toString(),
+ ClusterState.BOOTSTRAPPING.toString(),
+ ClusterState.RUNNING.toString()
+ );
+
+ /**
+ * config ObjectMapper features and propertyNamingStrategy
+ * support capital letters parse
+ */
+ private static final ObjectMapper objectMapper = new ObjectMapper()
+ .configure(FAIL_ON_UNKNOWN_PROPERTIES, false)
+ .configure(ACCEPT_EMPTY_ARRAY_AS_NULL_OBJECT, true)
+ .configure(READ_UNKNOWN_ENUM_VALUES_AS_NULL, true)
+ .configure(REQUIRE_SETTERS_FOR_GETTERS, true)
+ .setPropertyNamingStrategy(new PropertyNamingStrategy() {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public String nameForSetterMethod(MapperConfig<?> config,
+ AnnotatedMethod method, String defaultName) {
+ return method.getName().substring(3);
+ }
+
+ @Override
+ public String nameForGetterMethod(MapperConfig<?> config,
+ AnnotatedMethod method, String defaultName) {
+ return method.getName().substring(3);
+ }
+ }).setTimeZone(TimeZone.getDefault());
+
+ /**
+ * constructor
+ *
+ * @param taskExecutionContext taskExecutionContext
+ */
+ protected EmrTask(TaskRequest taskExecutionContext) {
+
+ super(taskExecutionContext);
+ this.taskExecutionContext = taskExecutionContext;
+
+ }
+
+ @Override
+ public void init() {
+ logger.info("emr task params:{}", taskExecutionContext.getTaskParams());
+ emrParameters = JSONUtils.parseObject(taskExecutionContext.getTaskParams(), EmrParameters.class);
+ if (emrParameters == null || !emrParameters.checkParameters()) {
+ throw new EmrTaskException("emr task params is not valid");
+ }
+ emrClient = createEmrClient();
+ }
+
+ @Override
+ public void handle() throws InterruptedException {
+ ClusterStatus clusterStatus = null;
+ try {
+ RunJobFlowRequest runJobFlowRequest = createRunJobFlowRequest();
+
+ // submit runJobFlowRequest to aws
+ RunJobFlowResult result = emrClient.runJobFlow(runJobFlowRequest);
+
+ clusterId = result.getJobFlowId();
+
+ clusterStatus = getClusterStatus();
+
+ while (waitingStateSet.contains(clusterStatus.getState())) {
+ TimeUnit.SECONDS.sleep(10);
+ clusterStatus = getClusterStatus();
+ }
+
+ } catch (EmrTaskException | SdkBaseException e) {
+ logger.error("emr task submit failed with error", e);
+ setExitStatusCode(TaskConstants.EXIT_CODE_FAILURE);
+ } finally {
+ if (clusterStatus != null) {
+ calculateExitStatusCode(clusterStatus);
+ logger.info("emr task finished with cluster status : {}", clusterStatus);
+ }
+ }
+ }
+
+ /**
+ * parse json string to RunJobFlowRequest
+ *
+ * @return RunJobFlowRequest
+ */
+ private RunJobFlowRequest createRunJobFlowRequest() {
+
+ final RunJobFlowRequest runJobFlowRequest;
+ try {
+ runJobFlowRequest = objectMapper.readValue(emrParameters.getJobFlowDefineJson(), RunJobFlowRequest.class);
+ } catch (JsonProcessingException e) {
+ throw new EmrTaskException("can not parse RunJobFlowRequest from json", e);
+ }
+
+ return runJobFlowRequest;
+ }
+
+ /**
+ * calculate task exitStatusCode
+ *
+ * @param clusterStatus aws emr cluster status
+ */
+ private void calculateExitStatusCode(ClusterStatus clusterStatus) {
+ String state = clusterStatus.getState();
+ ClusterStateChangeReason stateChangeReason = clusterStatus.getStateChangeReason();
+ ClusterState clusterState = ClusterState.valueOf(state);
+ int exitStatusCode;
+ switch (clusterState) {
+ case TERMINATED:
+ case TERMINATING:
+ String code = stateChangeReason.getCode();
+ if (code != null && code.equalsIgnoreCase(ClusterStateChangeReasonCode.ALL_STEPS_COMPLETED.toString())) {
+ exitStatusCode = TaskConstants.EXIT_CODE_SUCCESS;
+ } else {
+ exitStatusCode = TaskConstants.EXIT_CODE_KILL;
+ }
+ break;
+ case TERMINATED_WITH_ERRORS:
+ exitStatusCode = TaskConstants.EXIT_CODE_FAILURE;
+ break;
+ default:
+ exitStatusCode = TaskConstants.EXIT_CODE_SUCCESS;
+ break;
+ }
+ setExitStatusCode(exitStatusCode);
+ }
+
+ private ClusterStatus getClusterStatus() {
+ DescribeClusterRequest describeClusterRequest = new DescribeClusterRequest().withClusterId(clusterId);
+ DescribeClusterResult result = emrClient.describeCluster(describeClusterRequest);
+ if (result == null) {
+ throw new EmrTaskException("fetch cluster status failed");
+ }
+ ClusterStatus clusterStatus = result.getCluster().getStatus();
+ logger.info("emr cluster [clusterId:{}] running with status:{}", clusterId, clusterStatus);
+ return clusterStatus;
+
+ }
+
+ @Override
+ public AbstractParameters getParameters() {
+ return emrParameters;
+ }
+
+ /**
+ * create emr client from aws named profiles file
+ *
+ * @return AmazonElasticMapReduce
+ */
+ private AmazonElasticMapReduce createEmrClient() {
+
+ final String awsAccessKeyId = PropertyUtils.getString(TaskConstants.AWS_ACCESS_KEY_ID);
+ final String awsSecretAccessKey = PropertyUtils.getString(TaskConstants.AWS_SECRET_ACCESS_KEY);
+ final String awsRegion = PropertyUtils.getString(TaskConstants.AWS_REGION);
+ final BasicAWSCredentials basicAWSCredentials = new BasicAWSCredentials(awsAccessKeyId, awsSecretAccessKey);
+ final AWSCredentialsProvider awsCredentialsProvider = new AWSStaticCredentialsProvider(basicAWSCredentials);
+ // create an EMR client
+ return AmazonElasticMapReduceClientBuilder.standard()
+ .withCredentials(awsCredentialsProvider)
+ .withRegion(awsRegion)
+ .build();
+ }
+
+ @Override
+ public void cancelApplication(boolean status) throws Exception {
+ super.cancelApplication(status);
+
+ logger.info("trying terminate job flow ");
Review comment:
accept it
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@dolphinscheduler.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org