package com.thinkbiganalytics.datalake.authorization;
/*-
* #%L
* thinkbig-hadoop-authorization-ranger
* %%
* Copyright (C) 2017 ThinkBig Analytics
* %%
* Licensed 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.
* #L%
*/
import com.thinkbiganalytics.datalake.authorization.config.RangerConnection;
import com.thinkbiganalytics.datalake.authorization.model.HadoopAuthorizationGroup;
import com.thinkbiganalytics.datalake.authorization.rest.model.RangerGroup;
import com.thinkbiganalytics.datalake.authorization.service.HadoopAuthorizationService;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import java.util.List;
import static org.junit.Assert.assertNotNull;
/**
* Integration Tests for interacting with Ranger
*/
public class RangerAuthorizationServiceTest {
private HadoopAuthorizationService rangerAuthorizationService;
@Before
public void setup() {
RangerConnection rangerConnection = new RangerConnection();
rangerConnection.setHostName("localhost");
rangerConnection.setPort(6080);
rangerConnection.setUsername("admin");
rangerConnection.setPassword("admin");
rangerAuthorizationService = new RangerAuthorizationService();
rangerAuthorizationService.initialize(rangerConnection);
}
@Test
@Ignore
public void testGetAllGroups() {
List<HadoopAuthorizationGroup> groups = rangerAuthorizationService.getAllGroups();
assertNotNull(groups);
}
@Test
@Ignore
public void getGetGroupByName() {
RangerGroup rangerGroup = (RangerGroup) rangerAuthorizationService.getGroupByName("root");
assertNotNull(rangerGroup);
}
/**
* Test getPolicy function pass policyId to retrieve information for that policy
*/
//System.out.println("\n Policy Retrived \n");
//System.out.println(rangerClientObj.getPolicy(5));
/**
* Delete Policy
*/
//System.out.println("Delete Policy");
//rangerClientObj.deletePolicy((69));
/**
* Test search policy function set required search criteria
*/
/*
System.out.println("\nPolicy searched \n");
SearchPolicy search = new SearchPolicy();
search.setPolicyName("Sandbox_hive-2-20160229183752");
search.setEnabled(true);
System.out.println(rangerRestClient.searchPolicies(search.searchCriteria()) + "\n");
*/
/**
* Test create policy function for HDFS
*/
/* HDFSPolicy policy = new HDFSPolicy();
ArrayList<String> userList = new ArrayList<String>();
//ArrayList<String> groupList = new ArrayList<String>();
ArrayList<String> permList = new ArrayList<String>();
//Add remove users/groups/permissions to test createPolicy function
//Passing permission list is mandatory if 'usersList' or 'groupList' is passed otherwise createPolicy() will fail
//userList.add("user2");
//userList.add("user1");
String groupListInformation = ranerConnHelper.getGroupList();
//ArrayList<String> groupList = (ArrayList<String>) Arrays.asList(groupListInformation.split(","));
//List<String> groupList = new ArrayList<String>(Arrays.asList(groupListInformation.split(" , ")));
String [] items = groupListInformation.split(",");
List<String> groupList = Arrays.asList(groupListInformation.split("\\s*,\\s*"));
//List<String> groupList = (ArrayList<String>) Arrays.asList(items);
System.out.println("---------------- group information ---- >" + groupList.toString());
//groupList.to
//groupList.add("hadoop");
//groupList.add("root");
ArrayList arraylist = new ArrayList(groupList);
permList.add("read");
permList.add("write");
//permList.add("execute");
policy.setPolicyName("user1_test3");
policy.setResourceName("/user/newuser");
policy.setDescription("This is test of Ranger API");
policy.setRepositoryName("Sandbox_hadoop");
policy.setRepositorytype("hdfs");
policy.setIsEnabled("true");
policy.setIsRecursive("true");
policy.setIsAuditEnabled("true");
policy.setUsers(userList);
policy.setGroups(arraylist);
HDFSPolicy.setPermissions(permList);
rangerClientObj.createPolicy(policy.policyJson());
System.out.println("Policy created");
*/
/* HDFSPolicy policy = new HDFSPolicy();
ArrayList<String> userList = new ArrayList<String>();
ArrayList<String> groupList = new ArrayList<String>();
ArrayList<String> permList = new ArrayList<String>();
//Add remove users/groups/permissions to test createPolicy function
//Passing permission list is mandatory if 'usersList' or 'groupList' is passed otherwise createPolicy() will fail
userList.add("user2");
userList.add("user1");
groupList.add("hadoop");
groupList.add("root");
permList.add("read");
permList.add("write");
//permList.add("execute");
policy.setPolicyName("user1_test3");
policy.setResourceName("/user/newuser");
policy.setDescription("This is test of Ranger API");
policy.setRepositoryName("Sandbox_hadoop");
policy.setRepositorytype("hdfs");
policy.setIsEnabled("true");
policy.setIsRecursive("true");
policy.setIsAuditEnabled("true");
policy.setUsers(userList);
policy.setGroups(groupList);
HDFSPolicy.setPermissions(permList);
//System.out.println("Policy created");
//rangerClientObj.createPolicy(policy.policyJson());
//rangerClientObj.updatePolicy(policy.policyJson(), 70);
*//**
* Get policy count
*//*
//System.out.println(rangerClientObj.countPolicies());
*//**
* Test create policy function for Hive
*//*
HivePolicy hivePolicy = new HivePolicy();
ArrayList<String> userListHive = new ArrayList<String>();
ArrayList<String> groupListHive = new ArrayList<String>();
ArrayList<String> permListHive = new ArrayList<String>();
//Add remove users/groups/permissions to test createPolicy function
//Passing permission list is mandatory if 'usersList' or 'groupList' is passed otherwise createPolicy() will fail
//userListHive.add("shashi");
userListHive.add("user");
groupListHive.add("hadoop");
//groupListHive.add("root");
permListHive.add("select");
//permListHive.add("create");
permListHive.add("update");
hivePolicy.setPolicyName("hive_test2");
hivePolicy.setDatabases("default,test");
hivePolicy.setTables("sample_07,testing");
hivePolicy.setColumns("*");
hivePolicy.setUdfs("");
hivePolicy.setDescription("This is test of Ranger API for Hive");
hivePolicy.setRepositoryName("Sandbox_hive");
hivePolicy.setRepositoryType("hive");
hivePolicy.setIsEnabled("true");
hivePolicy.setIsAuditEnabled("true");
hivePolicy.setUserList(userListHive);
hivePolicy.setGroupList(groupListHive);
HivePolicy.setPermList(permListHive);
//System.out.println("Policy created");
//rangerClientObj.createPolicy(hivePolicy.policyJson());
*//***
* Update policy using policy ID - Hive
*
*//*
//userListHive.add("shashi");
userListHive.add("user");
groupListHive.add("hadoop");
//groupListHive.add("root");
permListHive.add("select");
//permListHive.add("create");
permListHive.add("update");
hivePolicy.setPolicyName("hive_test");
hivePolicy.setDatabases("default,test");
hivePolicy.setTables("sample_07,testing");
hivePolicy.setColumns("*");
hivePolicy.setUdfs("");
hivePolicy.setDescription("This is test of Ranger API for Hive");
hivePolicy.setRepositoryName("Sandbox_hive");
hivePolicy.setRepositoryType("hive");
hivePolicy.setIsEnabled("true");
hivePolicy.setIsAuditEnabled("true");
hivePolicy.setUserList(userListHive);
hivePolicy.setGroupList(groupListHive);
HivePolicy.setPermList(permListHive);
//System.out.println("Policy update");
//rangerClientObj.updatePolicy(hivePolicy.policyJson(), 71);
*//***
* Get user/group information
*//*
//System.out.println(rangerClientObj.getAllUsers());
//System.out.println(rangerClientObj.getUserByName("hive"));
//System.out.println(rangerClientObj.getUserById(53));
//System.out.println("Number of users: "+rangerClientObj.getUserCount());
//Groups information
//System.out.println(rangerClientObj.getAllGroups());
//System.out.println(rangerClientObj.getGroupById(12));
//System.out.println(rangerClientObj.getGroupByName("hadoop"));
//System.out.println("Number of groups: "+rangerClientObj.getGroupCount());
*//***
* User-Group mapping information
*//*
System.out.println(rangerClientObj.getUserGroupMapping());
//System.out.println(rangerClientObj.getUserGroupMappingCount());
//System.out.println(rangerClientObj.getUserGroupMappingById(12));
//System.out.println(rangerClientObj.getGroupInfoByUserId(53));
//System.out.println(rangerClientObj.getUserInfoByGroupId(3));
*/
}