-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/74405/
-----------------------------------------------------------
(Updated Nov. 28, 2023, 3:19 a.m.)
Review request for ranger, Don Bosco Durai, Abhay Kulkarni, Madhan Neethiraj,
Mehul Parikh, Nikhil P, Pradeep Agrawal, Ramesh Mani, Selvamohan Neethiraj,
Sailaja Polavarapu, Subhrat Chaudhary, and Velmurugan Periasamy.
Bugs: RANGER-4195
https://issues.apache.org/jira/browse/RANGER-4195
Repository: ranger
Description (updated)
-------
Exposing the Ranger REST API is used to fetch the health check status of Ranger
Admin
RangerAdmin Health Check JSON Response look like (In the current implementation)
{
"status": "UP",
"components": {
"db": {
"status": "UP",
"details":
{ "database": "Oracle 21.3c", "validationQuery": "SELECT banner from v$version
where rownum<2" }
}
}
}
In the future we can extend this health check API for other components like
AuditHandler (Elastic search, Kafka,HDFS, Solr),KMS ,etc
Another Example :
{
"status": "UP",
"components": {
"db": {
"status": "UP",
"details":
{ "database": "Oracle 21.3c", "validationQuery": "SELECT banner from v$version
where rownum<2" }
},
"auditProvider": {
"status": "UP",
"details":
{ "provider": "Elastic Search", "providerHealthCheckEndpoint":
"http://localhost:9200/_cluster/health?pretty" }
}
}
}
As part of this PR ,we have added some refactoring stuffs as well.
For SUPPORTS, Spring first checks if an active transaction exists. If a
transaction exists, then the existing transaction will be used. If there isn’t
a transaction, it is executed non-transactional
NOT_SUPPORTED Propagation
If a current transaction exists, first Spring suspends it, and then the
business logic is executed without a transaction:
For more info:
https://www.javainuse.com/spring/boot-transaction-propagation
https://levelup.gitconnected.com/mastering-transaction-propagation-in-spring-boot-ensure-data-consistency-and-integrity-across-ab9f1a8aa245
Diffs
-----
agents-audit/src/main/java/org/apache/ranger/audit/provider/AuditProviderFactory.java
598659bf4
agents-common/src/main/java/org/apache/ranger/plugin/model/RangerServerHealth.java
PRE-CREATION
agents-common/src/test/java/org/apache/ranger/plugin/model/TestRangerHealth.java
PRE-CREATION
security-admin/src/main/java/org/apache/ranger/biz/RangerBizUtil.java
136a1309b
security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java
cd92d92b4
security-admin/src/main/java/org/apache/ranger/common/db/BaseDao.java
a0ff18948
security-admin/src/main/java/org/apache/ranger/patch/cliutil/MetricUtil.java
7d4828ed0
security-admin/src/main/java/org/apache/ranger/rest/RangerHealthREST.java
PRE-CREATION
security-admin/src/main/java/org/apache/ranger/util/RangerServerHealthUtil.java
PRE-CREATION
security-admin/src/main/resources/conf.dist/security-applicationContext.xml
807791f28
security-admin/src/test/java/org/apache/ranger/biz/TestRangerBizUtil.java
22e290a66
security-admin/src/test/java/org/apache/ranger/rest/TestRangerHealthREST.java
PRE-CREATION
security-admin/src/test/java/org/apache/ranger/util/TestRangerServerHealthUtil.java
PRE-CREATION
Diff: https://reviews.apache.org/r/74405/diff/6/
Testing
-------
Tested this API and the response below
{"status":"UP","details":{"components":{"db":{"details":{"database":"ORACLE
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 -
Production","validationQuery":"SELECT banner from v$version where
rownum<2"},"status":"UP"}}}}
Thanks,
Ramachandran Krishnan