Repository: ranger Updated Branches: refs/heads/master 6014e64a0 -> a2e896da0
RANGER-1795: Service should not be renamed if tagged service resources exist for it unless 'forceRename=true' option is specified Project: http://git-wip-us.apache.org/repos/asf/ranger/repo Commit: http://git-wip-us.apache.org/repos/asf/ranger/commit/a2e896da Tree: http://git-wip-us.apache.org/repos/asf/ranger/tree/a2e896da Diff: http://git-wip-us.apache.org/repos/asf/ranger/diff/a2e896da Branch: refs/heads/master Commit: a2e896da0989c90060e767338165b3ccf27f6c67 Parents: 6014e64 Author: Abhay Kulkarni <[email protected]> Authored: Mon Oct 16 14:09:21 2017 -0700 Committer: Abhay Kulkarni <[email protected]> Committed: Mon Oct 16 14:39:09 2017 -0700 ---------------------------------------------------------------------- .../ranger/plugin/store/ServiceStore.java | 6 +++- .../org/apache/ranger/biz/ServiceDBStore.java | 31 ++++++++++++++------ .../apache/ranger/db/XXServiceResourceDao.java | 12 ++++++++ .../java/org/apache/ranger/rest/AssetREST.java | 2 +- .../java/org/apache/ranger/rest/PublicAPIs.java | 2 +- .../org/apache/ranger/rest/PublicAPIsv2.java | 10 ++++--- .../org/apache/ranger/rest/ServiceREST.java | 20 +++++++++++-- .../resources/META-INF/jpa_named_queries.xml | 6 ++++ .../apache/ranger/biz/TestServiceDBStore.java | 6 +++- .../org/apache/ranger/rest/TestAssetREST.java | 5 ++-- .../org/apache/ranger/rest/TestPublicAPIs.java | 5 ++-- .../apache/ranger/rest/TestPublicAPIsv2.java | 14 +++++---- .../org/apache/ranger/rest/TestServiceREST.java | 9 ++++-- 13 files changed, 96 insertions(+), 32 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ranger/blob/a2e896da/agents-common/src/main/java/org/apache/ranger/plugin/store/ServiceStore.java ---------------------------------------------------------------------- diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/store/ServiceStore.java b/agents-common/src/main/java/org/apache/ranger/plugin/store/ServiceStore.java index 89c3326..2c57a6f 100644 --- a/agents-common/src/main/java/org/apache/ranger/plugin/store/ServiceStore.java +++ b/agents-common/src/main/java/org/apache/ranger/plugin/store/ServiceStore.java @@ -20,6 +20,7 @@ package org.apache.ranger.plugin.store; import java.util.List; +import java.util.Map; import org.apache.ranger.plugin.model.RangerPolicy; import org.apache.ranger.plugin.model.RangerService; @@ -28,6 +29,9 @@ import org.apache.ranger.plugin.util.SearchFilter; import org.apache.ranger.plugin.util.ServicePolicies; public interface ServiceStore { + + String OPTION_FORCE_RENAME = "forceRename"; + void init() throws Exception; RangerServiceDef createServiceDef(RangerServiceDef serviceDef) throws Exception; @@ -48,7 +52,7 @@ public interface ServiceStore { RangerService createService(RangerService service) throws Exception; - RangerService updateService(RangerService service) throws Exception; + RangerService updateService(RangerService service, Map<String, Object> options) throws Exception; void deleteService(Long id) throws Exception; http://git-wip-us.apache.org/repos/asf/ranger/blob/a2e896da/security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java b/security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java index e433f08..195510d 100644 --- a/security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java +++ b/security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java @@ -60,6 +60,7 @@ import org.apache.ranger.plugin.policyengine.RangerPolicyEngine; import org.apache.ranger.plugin.policyresourcematcher.RangerDefaultPolicyResourceMatcher; import org.apache.ranger.plugin.policyresourcematcher.RangerPolicyResourceMatcher; import org.apache.ranger.plugin.service.RangerBaseService; +import org.apache.ranger.plugin.store.ServiceStore; import org.apache.ranger.plugin.util.PasswordUtils; import org.apache.ranger.common.JSONUtil; import org.apache.ranger.common.PropertiesUtil; @@ -1461,7 +1462,7 @@ public class ServiceDBStore extends AbstractServiceStore { } @Override - public RangerService updateService(RangerService service) throws Exception { + public RangerService updateService(RangerService service, Map<String, Object> options) throws Exception { if(LOG.isDebugEnabled()) { LOG.debug("==> ServiceDBStore.updateService()"); } @@ -1479,13 +1480,26 @@ public class ServiceDBStore extends AbstractServiceStore { boolean renamed = !StringUtils.equalsIgnoreCase(service.getName(), existingName); if(renamed) { - XXService newNameService = daoMgr.getXXService().findByName(service.getName()); + XXService newNameService = daoMgr.getXXService().findByName(service.getName()); - if(newNameService != null) { - throw restErrorUtil.createRESTException("another service already exists with name '" - + service.getName() + "'. ID=" + newNameService.getId(), MessageEnums.DATA_NOT_UPDATABLE); - } - } + if (newNameService != null) { + throw restErrorUtil.createRESTException("another service already exists with name '" + + service.getName() + "'. ID=" + newNameService.getId(), MessageEnums.DATA_NOT_UPDATABLE); + } + + long countOfTaggedResources = daoMgr.getXXServiceResource().countTaggedResourcesInServiceId(existing.getId()); + + Boolean isForceRename = options != null && options.get(ServiceStore.OPTION_FORCE_RENAME) != null ? (Boolean) options.get(ServiceStore.OPTION_FORCE_RENAME) : Boolean.FALSE; + + if (countOfTaggedResources != 0L) { + if (isForceRename) { + LOG.warn("Forcing the renaming of service from " + existingName + " to " + service.getName() + " although it is associated with " + countOfTaggedResources + + " service-resources!"); + } else { + throw restErrorUtil.createRESTException("Service " + existingName + " cannot be renamed, as it has associated service-resources", MessageEnums.DATA_NOT_UPDATABLE); + } + } + } Map<String, String> configs = service.getConfigs(); Map<String, String> validConfigs = validateRequiredConfigParams(service, configs); @@ -3943,7 +3957,7 @@ public class ServiceDBStore extends AbstractServiceStore { chkServiceUpdate = true; } if(chkServiceUpdate){ - updateService(rangerService); + updateService(rangerService, null); if(LOG.isDebugEnabled()){ LOG.debug("Updated service "+rangerService.getName()+" with custom properties in secure environment"); } @@ -3952,7 +3966,6 @@ public class ServiceDBStore extends AbstractServiceStore { } } catch (Throwable e) { LOG.fatal("updateServiceWithCustomProperty failed with exception : "+e.getMessage()); - return; } } http://git-wip-us.apache.org/repos/asf/ranger/blob/a2e896da/security-admin/src/main/java/org/apache/ranger/db/XXServiceResourceDao.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/db/XXServiceResourceDao.java b/security-admin/src/main/java/org/apache/ranger/db/XXServiceResourceDao.java index 9859992..f87c0ae 100644 --- a/security-admin/src/main/java/org/apache/ranger/db/XXServiceResourceDao.java +++ b/security-admin/src/main/java/org/apache/ranger/db/XXServiceResourceDao.java @@ -84,6 +84,18 @@ public class XXServiceResourceDao extends BaseDao<XXServiceResource> { } } + public long countTaggedResourcesInServiceId(Long serviceId) { + if (serviceId == null) { + return -1; + } + try { + return getEntityManager().createNamedQuery("XXServiceResource.countTaggedResourcesInServiceId", Long.class) + .setParameter("serviceId", serviceId).getSingleResult(); + } catch (NoResultException e) { + return -1; + } + } + public List<XXServiceResource> findForServicePlugin(Long serviceId) { if (serviceId == null) { return new ArrayList<XXServiceResource>(); http://git-wip-us.apache.org/repos/asf/ranger/blob/a2e896da/security-admin/src/main/java/org/apache/ranger/rest/AssetREST.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/rest/AssetREST.java b/security-admin/src/main/java/org/apache/ranger/rest/AssetREST.java index 54226d9..3c274e3 100644 --- a/security-admin/src/main/java/org/apache/ranger/rest/AssetREST.java +++ b/security-admin/src/main/java/org/apache/ranger/rest/AssetREST.java @@ -190,7 +190,7 @@ public class AssetREST { RangerService service = serviceUtil.toRangerService(vXAsset); - RangerService updatedService = serviceREST.updateService(service); + RangerService updatedService = serviceREST.updateService(service, null); VXAsset ret = serviceUtil.toVXAsset(updatedService); http://git-wip-us.apache.org/repos/asf/ranger/blob/a2e896da/security-admin/src/main/java/org/apache/ranger/rest/PublicAPIs.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/rest/PublicAPIs.java b/security-admin/src/main/java/org/apache/ranger/rest/PublicAPIs.java index d3c22d7..7818eb5 100644 --- a/security-admin/src/main/java/org/apache/ranger/rest/PublicAPIs.java +++ b/security-admin/src/main/java/org/apache/ranger/rest/PublicAPIs.java @@ -144,7 +144,7 @@ public class PublicAPIs { RangerService service = serviceUtil.toRangerService(vXAsset); service.setVersion(existing.getVersion()); - RangerService updatedService = serviceREST.updateService(service); + RangerService updatedService = serviceREST.updateService(service, null); VXAsset retvXAsset = serviceUtil.toVXAsset(updatedService); http://git-wip-us.apache.org/repos/asf/ranger/blob/a2e896da/security-admin/src/main/java/org/apache/ranger/rest/PublicAPIsv2.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/rest/PublicAPIsv2.java b/security-admin/src/main/java/org/apache/ranger/rest/PublicAPIsv2.java index fa3c68e..0281c94 100644 --- a/security-admin/src/main/java/org/apache/ranger/rest/PublicAPIsv2.java +++ b/security-admin/src/main/java/org/apache/ranger/rest/PublicAPIsv2.java @@ -209,7 +209,8 @@ public class PublicAPIsv2 { @Path("/api/service/{id}") @PreAuthorize("@rangerPreAuthSecurityHandler.isAPISpnegoAccessible()") @Produces({ "application/json", "application/xml" }) - public RangerService updateService(RangerService service, @PathParam("id") Long id) { + public RangerService updateService(RangerService service, @PathParam("id") Long id, + @Context HttpServletRequest request) { // if service.id is specified, it should be same as the param 'id' if(service.getId() == null) { service.setId(id); @@ -217,7 +218,7 @@ public class PublicAPIsv2 { throw restErrorUtil.createRESTException(HttpServletResponse.SC_BAD_REQUEST , "service id mismatch", true); } - return serviceREST.updateService(service); + return serviceREST.updateService(service, request); } @@ -226,7 +227,8 @@ public class PublicAPIsv2 { @PreAuthorize("@rangerPreAuthSecurityHandler.isAPISpnegoAccessible()") @Produces({ "application/json", "application/xml" }) public RangerService updateServiceByName(RangerService service, - @PathParam("name") String name) { + @PathParam("name") String name, + @Context HttpServletRequest request) { // ignore service.id - if specified. Retrieve using the given name and use id from the retrieved object RangerService existingService = getServiceByName(name); service.setId(existingService.getId()); @@ -237,7 +239,7 @@ public class PublicAPIsv2 { service.setName(existingService.getName()); } - return serviceREST.updateService(service); + return serviceREST.updateService(service, request); } /* http://git-wip-us.apache.org/repos/asf/ranger/blob/a2e896da/security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java b/security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java index 76e5088..9e4d799 100644 --- a/security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java +++ b/security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java @@ -101,6 +101,7 @@ import org.apache.ranger.plugin.policyengine.RangerPolicyEngineOptions; import org.apache.ranger.plugin.service.ResourceLookupContext; import org.apache.ranger.plugin.store.PList; import org.apache.ranger.plugin.store.EmbeddedServiceDefsUtil; +import org.apache.ranger.plugin.store.ServiceStore; import org.apache.ranger.plugin.util.GrantRevokeRequest; import org.apache.ranger.plugin.util.RangerAccessRequestUtil; import org.apache.ranger.plugin.util.RangerPerfTracer; @@ -670,7 +671,8 @@ public class ServiceREST { @Path("/services/{id}") @Produces({ "application/json", "application/xml" }) @PreAuthorize("@rangerPreAuthSecurityHandler.isAPIAccessible(\"" + RangerAPIList.UPDATE_SERVICE + "\")") - public RangerService updateService(RangerService service) { + public RangerService updateService(RangerService service, + @Context HttpServletRequest request) { if(LOG.isDebugEnabled()) { LOG.debug("==> ServiceREST.updateService(): " + service); } @@ -693,7 +695,9 @@ public class ServiceREST { XXServiceDef xxServiceDef = daoManager.getXXServiceDef().findByName(service.getType()); bizUtil.hasKMSPermissions("Service", xxServiceDef.getImplclassname()); - ret = svcStore.updateService(service); + Map<String, Object> options = getOptions(request); + + ret = svcStore.updateService(service, options); } catch(WebApplicationException excp) { throw excp; } catch(Throwable excp) { @@ -3291,4 +3295,16 @@ public class ServiceREST { } } } + + private Map<String, Object> getOptions(HttpServletRequest request) { + Map<String, Object> ret = null; + if (request != null) { + String isForceRenameOption = request.getParameter(ServiceStore.OPTION_FORCE_RENAME); + if (StringUtils.isNotBlank(isForceRenameOption)) { + ret = new HashMap<String, Object>(); + ret.put(ServiceStore.OPTION_FORCE_RENAME, Boolean.valueOf(isForceRenameOption)); + } + } + return ret; + } } http://git-wip-us.apache.org/repos/asf/ranger/blob/a2e896da/security-admin/src/main/resources/META-INF/jpa_named_queries.xml ---------------------------------------------------------------------- diff --git a/security-admin/src/main/resources/META-INF/jpa_named_queries.xml b/security-admin/src/main/resources/META-INF/jpa_named_queries.xml index a212e59..786b4bf 100644 --- a/security-admin/src/main/resources/META-INF/jpa_named_queries.xml +++ b/security-admin/src/main/resources/META-INF/jpa_named_queries.xml @@ -1085,6 +1085,12 @@ </query> </named-query> + <named-query name="XXServiceResource.countTaggedResourcesInServiceId"> + <query>select count(obj.id) from XXServiceResource obj where obj.serviceId = :serviceId and obj.id in + (select tagResMap.resourceId from XXTagResourceMap tagResMap) + </query> + </named-query> + <named-query name="XXServiceResource.findForServicePlugin"> <query> select obj from XXServiceResource obj, XXService service where service.id = :serviceId and service.tagService is not null and obj.serviceId = service.id and obj.id in http://git-wip-us.apache.org/repos/asf/ranger/blob/a2e896da/security-admin/src/test/java/org/apache/ranger/biz/TestServiceDBStore.java ---------------------------------------------------------------------- diff --git a/security-admin/src/test/java/org/apache/ranger/biz/TestServiceDBStore.java b/security-admin/src/test/java/org/apache/ranger/biz/TestServiceDBStore.java index c51aa2e..f7eb0d4 100644 --- a/security-admin/src/test/java/org/apache/ranger/biz/TestServiceDBStore.java +++ b/security-admin/src/test/java/org/apache/ranger/biz/TestServiceDBStore.java @@ -1043,8 +1043,10 @@ public class TestServiceDBStore { XXServiceConfigDefDao xServiceConfigDefDao = Mockito .mock(XXServiceConfigDefDao.class); XXUserDao xUserDao = Mockito.mock(XXUserDao.class); + XXServiceResourceDao xServiceResourceDao = Mockito.mock(XXServiceResourceDao.class); RangerService rangerService = rangerService(); + Map<String, Object> options = null; String name = "fdfdfds"; List<XXTrxLog> trxLogList = new ArrayList<XXTrxLog>(); @@ -1072,7 +1074,9 @@ public class TestServiceDBStore { xServiceConfigDefList.add(serviceConfigDefObj); Mockito.when(daoManager.getXXServiceConfigDef()).thenReturn( xServiceConfigDefDao); + Mockito.when(daoManager.getXXServiceResource()).thenReturn(xServiceResourceDao); + Mockito.when(xServiceResourceDao.countTaggedResourcesInServiceId(xService.getId())).thenReturn(0L); Mockito.when(svcService.update(rangerService)) .thenReturn(rangerService); Mockito.when(daoManager.getXXService()).thenReturn(xServiceDao); @@ -1115,7 +1119,7 @@ public class TestServiceDBStore { Mockito.when(xServiceVersionInfoDao.update(xServiceVersionInfo)).thenReturn(xServiceVersionInfo); RangerService dbRangerService = serviceDBStore - .updateService(rangerService); + .updateService(rangerService, options); Assert.assertNotNull(dbRangerService); Assert.assertEquals(dbRangerService, rangerService); Assert.assertEquals(dbRangerService.getId(), rangerService.getId()); http://git-wip-us.apache.org/repos/asf/ranger/blob/a2e896da/security-admin/src/test/java/org/apache/ranger/rest/TestAssetREST.java ---------------------------------------------------------------------- diff --git a/security-admin/src/test/java/org/apache/ranger/rest/TestAssetREST.java b/security-admin/src/test/java/org/apache/ranger/rest/TestAssetREST.java index 75cbdbd..9182195 100644 --- a/security-admin/src/test/java/org/apache/ranger/rest/TestAssetREST.java +++ b/security-admin/src/test/java/org/apache/ranger/rest/TestAssetREST.java @@ -325,14 +325,15 @@ public class TestAssetREST { @Test public void testUpdateXAsset() { RangerService rangerService = rangerService(Id); + HttpServletRequest request = null; VXAsset vXAsset = vXAsset(Id); Mockito.when(serviceUtil.toRangerService(vXAsset)).thenReturn(rangerService); - Mockito.when(serviceREST.updateService(rangerService)).thenReturn(rangerService); + Mockito.when(serviceREST.updateService(rangerService, request)).thenReturn(rangerService); Mockito.when(serviceUtil.toVXAsset(rangerService)).thenReturn(vXAsset); VXAsset asset = assetREST.updateXAsset(vXAsset); Assert.assertNotNull(asset); Assert.assertEquals(vXAsset, asset); - Mockito.verify(serviceREST).updateService(rangerService); + Mockito.verify(serviceREST).updateService(rangerService, request); Mockito.verify(serviceUtil).toRangerService(vXAsset); Mockito.verify(serviceUtil).toVXAsset(rangerService); } http://git-wip-us.apache.org/repos/asf/ranger/blob/a2e896da/security-admin/src/test/java/org/apache/ranger/rest/TestPublicAPIs.java ---------------------------------------------------------------------- diff --git a/security-admin/src/test/java/org/apache/ranger/rest/TestPublicAPIs.java b/security-admin/src/test/java/org/apache/ranger/rest/TestPublicAPIs.java index 4eaca03..2bf5ee6 100644 --- a/security-admin/src/test/java/org/apache/ranger/rest/TestPublicAPIs.java +++ b/security-admin/src/test/java/org/apache/ranger/rest/TestPublicAPIs.java @@ -293,6 +293,7 @@ public class TestPublicAPIs { public void test3updateRepository() throws Exception { VXAsset vXAsset = new VXAsset(); RangerService rangerService = rangerService(); + HttpServletRequest request = null; VXRepository vXRepository = vXRepository(rangerService); XXService xService = xService(); XXServiceDao xServiceDao = Mockito.mock(XXServiceDao.class); @@ -300,7 +301,7 @@ public class TestPublicAPIs { Mockito.when(xServiceDao.getById(Id)).thenReturn(xService); Mockito.when(serviceUtil.publicObjecttoVXAsset(vXRepository)).thenReturn(vXAsset); Mockito.when(serviceUtil.toRangerService(vXAsset)).thenReturn(rangerService); - Mockito.when(serviceREST.updateService(rangerService)).thenReturn(rangerService); + Mockito.when(serviceREST.updateService(rangerService, request)).thenReturn(rangerService); Mockito.when(serviceUtil.toVXAsset(rangerService)).thenReturn(vXAsset); Mockito.when(serviceUtil.vXAssetToPublicObject(vXAsset)).thenReturn(vXRepository); VXRepository dbVXRepository = publicAPIs.updateRepository(vXRepository, Id); @@ -311,7 +312,7 @@ public class TestPublicAPIs { vXRepository.getId()); Assert.assertEquals(dbVXRepository.getName(), vXRepository.getName()); - Mockito.verify(serviceREST).updateService(rangerService); + Mockito.verify(serviceREST).updateService(rangerService, request); Mockito.verify(serviceUtil).publicObjecttoVXAsset(vXRepository); Mockito.verify(serviceUtil).toRangerService(vXAsset); Mockito.verify(serviceUtil).toVXAsset(rangerService); http://git-wip-us.apache.org/repos/asf/ranger/blob/a2e896da/security-admin/src/test/java/org/apache/ranger/rest/TestPublicAPIsv2.java ---------------------------------------------------------------------- diff --git a/security-admin/src/test/java/org/apache/ranger/rest/TestPublicAPIsv2.java b/security-admin/src/test/java/org/apache/ranger/rest/TestPublicAPIsv2.java index d65a426..f9ea26a 100644 --- a/security-admin/src/test/java/org/apache/ranger/rest/TestPublicAPIsv2.java +++ b/security-admin/src/test/java/org/apache/ranger/rest/TestPublicAPIsv2.java @@ -403,31 +403,33 @@ public class TestPublicAPIsv2 { @Test public void test13updateService() throws Exception { RangerService rangerService = rangerService(); - Mockito.when(serviceREST.updateService(rangerService)).thenReturn(rangerService); - RangerService dbRangerService = publicAPIsv2.updateService(rangerService, Id); + HttpServletRequest request = null; + Mockito.when(serviceREST.updateService(rangerService, request)).thenReturn(rangerService); + RangerService dbRangerService = publicAPIsv2.updateService(rangerService, Id, request); Assert.assertNotNull(dbRangerService); Assert.assertEquals(dbRangerService, rangerService); Assert.assertEquals(dbRangerService.getId(), rangerService.getId()); Assert.assertEquals(dbRangerService.getName(), rangerService.getName()); - Mockito.verify(serviceREST).updateService(rangerService); + Mockito.verify(serviceREST).updateService(rangerService, request); } @Test public void test14updateServiceByName() throws Exception { RangerService rangerService = rangerService(); + HttpServletRequest request = null; String name = rangerService.getName(); Mockito.when(serviceREST.getServiceByName(name)).thenReturn(rangerService); - Mockito.when(serviceREST.updateService(rangerService)).thenReturn(rangerService); - RangerService dbRangerService = publicAPIsv2.updateServiceByName(rangerService, name); + Mockito.when(serviceREST.updateService(rangerService, request)).thenReturn(rangerService); + RangerService dbRangerService = publicAPIsv2.updateServiceByName(rangerService, name, request); Assert.assertNotNull(dbRangerService); Assert.assertEquals(dbRangerService, rangerService); Assert.assertEquals(dbRangerService.getId(), rangerService.getId()); Assert.assertEquals(dbRangerService.getName(), rangerService.getName()); - Mockito.verify(serviceREST).updateService(rangerService); + Mockito.verify(serviceREST).updateService(rangerService, request); Mockito.verify(serviceREST).getServiceByName(name); } http://git-wip-us.apache.org/repos/asf/ranger/blob/a2e896da/security-admin/src/test/java/org/apache/ranger/rest/TestServiceREST.java ---------------------------------------------------------------------- diff --git a/security-admin/src/test/java/org/apache/ranger/rest/TestServiceREST.java b/security-admin/src/test/java/org/apache/ranger/rest/TestServiceREST.java index 7c48d54..bb97fab 100644 --- a/security-admin/src/test/java/org/apache/ranger/rest/TestServiceREST.java +++ b/security-admin/src/test/java/org/apache/ranger/rest/TestServiceREST.java @@ -540,6 +540,9 @@ public class TestServiceREST { RangerService rangerService = rangerService(); XXServiceDef xServiceDef = serviceDef(); + HttpServletRequest request = null; + Map<String, Object> options = null; + XXServiceDefDao xServiceDefDao = Mockito.mock(XXServiceDefDao.class); Mockito.when(validatorFactory.getServiceValidator(svcStore)) .thenReturn(serviceValidator); @@ -549,11 +552,11 @@ public class TestServiceREST { .thenReturn(xServiceDef); Mockito.when( - svcStore.updateService((RangerService) Mockito.any())) + svcStore.updateService((RangerService) Mockito.any(), (Map<String, Object>) Mockito.any())) .thenReturn(rangerService); RangerService dbRangerService = serviceREST - .updateService(rangerService); + .updateService(rangerService, request); Assert.assertNotNull(dbRangerService); Assert.assertNotNull(dbRangerService); Assert.assertEquals(rangerService, dbRangerService); @@ -577,7 +580,7 @@ public class TestServiceREST { dbRangerService.getUpdatedBy()); Mockito.verify(validatorFactory).getServiceValidator(svcStore); Mockito.verify(daoManager).getXXServiceDef(); - Mockito.verify(svcStore).updateService(rangerService); + Mockito.verify(svcStore).updateService(rangerService, options); } @Test
