Search in sources :

Example 16 with Domain

use of com.yahoo.athenz.zms.Domain in project athenz by yahoo.

the class DataCacheTest method testSingleHostMultipleServices.

@Test
public void testSingleHostMultipleServices() {
    Domain domain = new Domain();
    domain.setName("testDomain");
    ServiceIdentity service1 = new ServiceIdentity();
    service1.setName("testDomain.storage1");
    List<String> hosts1 = new ArrayList<>();
    hosts1.add("host1");
    service1.setHosts(hosts1);
    ServiceIdentity service2 = new ServiceIdentity();
    service2.setName("testDomain.storage2");
    List<String> hosts2 = new ArrayList<>();
    hosts2.add("host1");
    service2.setHosts(hosts2);
    DataCache cache = new DataCache();
    cache.processServiceIdentity(service1);
    cache.processServiceIdentity(service2);
    Map<String, Set<String>> hostMap = cache.getHostMap();
    assertEquals(hostMap.size(), 1);
    assertTrue(hostMap.containsKey("host1"));
    Set<String> set = hostMap.get("host1");
    assertEquals(set.size(), 2);
    assertTrue(set.contains("testDomain.storage1"));
    assertTrue(set.contains("testDomain.storage2"));
}
Also used : Set(java.util.Set) ServiceIdentity(com.yahoo.athenz.zms.ServiceIdentity) ArrayList(java.util.ArrayList) Domain(com.yahoo.athenz.zms.Domain) DataCache(com.yahoo.athenz.zts.cache.DataCache) Test(org.testng.annotations.Test)

Example 17 with Domain

use of com.yahoo.athenz.zms.Domain in project athenz by yahoo.

the class DataCacheTest method testMultipleHostsMultipleServices.

@Test
public void testMultipleHostsMultipleServices() {
    Domain domain = new Domain();
    domain.setName("testDomain");
    ServiceIdentity service1 = new ServiceIdentity();
    service1.setName("testDomain.storage1");
    List<String> hosts1 = new ArrayList<>();
    hosts1.add("host1");
    hosts1.add("host2");
    service1.setHosts(hosts1);
    ServiceIdentity service2 = new ServiceIdentity();
    service2.setName("testDomain.storage2");
    List<String> hosts2 = new ArrayList<>();
    hosts2.add("host1");
    hosts2.add("host3");
    service2.setHosts(hosts2);
    DataCache cache = new DataCache();
    cache.processServiceIdentity(service1);
    cache.processServiceIdentity(service2);
    Map<String, Set<String>> hostMap = cache.getHostMap();
    assertEquals(hostMap.size(), 3);
    assertTrue(hostMap.containsKey("host1"));
    assertTrue(hostMap.containsKey("host2"));
    assertTrue(hostMap.containsKey("host3"));
    Set<String> set = hostMap.get("host1");
    assertEquals(set.size(), 2);
    assertTrue(set.contains("testDomain.storage1"));
    assertTrue(set.contains("testDomain.storage2"));
    set = hostMap.get("host2");
    assertEquals(set.size(), 1);
    assertTrue(set.contains("testDomain.storage1"));
    set = hostMap.get("host3");
    assertEquals(set.size(), 1);
    assertTrue(set.contains("testDomain.storage2"));
}
Also used : Set(java.util.Set) ServiceIdentity(com.yahoo.athenz.zms.ServiceIdentity) ArrayList(java.util.ArrayList) Domain(com.yahoo.athenz.zms.Domain) DataCache(com.yahoo.athenz.zts.cache.DataCache) Test(org.testng.annotations.Test)

Example 18 with Domain

use of com.yahoo.athenz.zms.Domain in project athenz by yahoo.

the class DataCacheTest method testPolicyNoRoleProcessed.

@Test
public void testPolicyNoRoleProcessed() {
    Domain domain = new Domain();
    domain.setName("testDomain");
    Role role1 = new Role();
    role1.setName("testDomain.role.role1");
    List<RoleMember> members1 = new ArrayList<>();
    members1.add(new RoleMember().setMemberName("user_domain.user1"));
    role1.setRoleMembers(members1);
    Policy policy = new Policy();
    policy.setName("testDomain.policy.policy1");
    Assertion assertion1 = new Assertion();
    assertion1.setAction("assume_role");
    assertion1.setEffect(AssertionEffect.ALLOW);
    assertion1.setResource("testDomain.roleA");
    assertion1.setRole("testDomain.role.role1");
    List<Assertion> assertList = new ArrayList<Assertion>();
    assertList.add(assertion1);
    policy.setAssertions(assertList);
    DataCache cache = new DataCache();
    HashMap<String, Role> roleList = new HashMap<>();
    roleList.put(role1.getName(), role1);
    cache.processPolicy(domain.getName(), policy, roleList);
    Set<MemberRole> set1 = cache.getMemberRoleSet("user_domain.user1");
    assertNotNull(set1);
    assertTrue(set1.contains(new MemberRole("testDomain.roleA", 0)));
    assertEquals(set1.size(), 1);
    Set<MemberRole> set2 = cache.getMemberRoleSet("user_domain.user2");
    assertNull(set2);
}
Also used : Policy(com.yahoo.athenz.zms.Policy) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) Assertion(com.yahoo.athenz.zms.Assertion) DataCache(com.yahoo.athenz.zts.cache.DataCache) Role(com.yahoo.athenz.zms.Role) Domain(com.yahoo.athenz.zms.Domain) RoleMember(com.yahoo.athenz.zms.RoleMember) Test(org.testng.annotations.Test)

Example 19 with Domain

use of com.yahoo.athenz.zms.Domain in project athenz by yahoo.

the class DataCacheTest method testMultipleHostsSkipDuplicate.

@Test
public void testMultipleHostsSkipDuplicate() {
    Domain domain = new Domain();
    domain.setName("testDomain");
    ServiceIdentity service = new ServiceIdentity();
    service.setName("testDomain.storage");
    List<String> hosts = new ArrayList<>();
    hosts.add("host1");
    hosts.add("host2");
    hosts.add("host1");
    service.setHosts(hosts);
    DataCache cache = new DataCache();
    cache.processServiceIdentity(service);
    Map<String, Set<String>> hostMap = cache.getHostMap();
    assertEquals(hostMap.size(), 2);
    assertTrue(hostMap.containsKey("host1"));
    Set<String> set = hostMap.get("host1");
    assertEquals(set.size(), 1);
    assertTrue(set.contains("testDomain.storage"));
    assertTrue(hostMap.containsKey("host2"));
    set = hostMap.get("host2");
    assertEquals(set.size(), 1);
    assertTrue(set.contains("testDomain.storage"));
}
Also used : Set(java.util.Set) ServiceIdentity(com.yahoo.athenz.zms.ServiceIdentity) ArrayList(java.util.ArrayList) Domain(com.yahoo.athenz.zms.Domain) DataCache(com.yahoo.athenz.zts.cache.DataCache) Test(org.testng.annotations.Test)

Example 20 with Domain

use of com.yahoo.athenz.zms.Domain in project athenz by yahoo.

the class DataCacheTest method testPolicyWithAssertions.

@Test
public void testPolicyWithAssertions() {
    Domain domain = new Domain();
    domain.setName("testDomain");
    Role role1 = new Role();
    role1.setName("testDomain.role.role1");
    List<RoleMember> members1 = new ArrayList<>();
    members1.add(new RoleMember().setMemberName("user_domain.user1"));
    members1.add(new RoleMember().setMemberName("user_domain.user2"));
    role1.setRoleMembers(members1);
    Role role2 = new Role();
    role2.setName("testDomain.role.role2");
    List<RoleMember> members2 = new ArrayList<>();
    members2.add(new RoleMember().setMemberName("user_domain.user2"));
    role2.setRoleMembers(members2);
    Role role3 = new Role();
    role3.setName("testDomain.role.role3");
    List<RoleMember> members3 = new ArrayList<>();
    members3.add(new RoleMember().setMemberName("user_domain.user3"));
    role3.setRoleMembers(members3);
    Policy policy = new Policy();
    policy.setName("testDomain.policy.policy1");
    Assertion assertion1 = new Assertion();
    assertion1.setAction("assume_role");
    assertion1.setEffect(AssertionEffect.ALLOW);
    assertion1.setResource("testDomain.roleA");
    assertion1.setRole("testDomain.role.role1");
    Assertion assertion2 = new Assertion();
    assertion2.setAction("read");
    assertion2.setEffect(AssertionEffect.ALLOW);
    assertion2.setResource("testDomain.data:*");
    assertion2.setRole("testDomain.role.role1");
    List<Assertion> assertList = new ArrayList<Assertion>();
    assertList.add(assertion1);
    assertList.add(assertion2);
    policy.setAssertions(assertList);
    DataCache cache = new DataCache();
    cache.processRole(role1);
    cache.processRole(role2);
    cache.processRole(role3);
    HashMap<String, Role> roleList = new HashMap<>();
    roleList.put(role1.getName(), role1);
    roleList.put(role2.getName(), role2);
    roleList.put(role3.getName(), role3);
    cache.processPolicy(domain.getName(), policy, roleList);
    Set<MemberRole> set1 = cache.getMemberRoleSet("user_domain.user1");
    assertNotNull(set1);
    assertTrue(set1.contains(new MemberRole("testDomain.role.role1", 0)));
    assertTrue(set1.contains(new MemberRole("testDomain.roleA", 0)));
    assertEquals(set1.size(), 2);
    Set<MemberRole> set2 = cache.getMemberRoleSet("user_domain.user2");
    assertNotNull(set2);
    assertTrue(set2.contains(new MemberRole("testDomain.role.role1", 0)));
    assertTrue(set2.contains(new MemberRole("testDomain.role.role2", 0)));
    assertTrue(set2.contains(new MemberRole("testDomain.roleA", 0)));
    assertEquals(set2.size(), 3);
    Set<MemberRole> set3 = cache.getMemberRoleSet("user_domain.user3");
    assertNotNull(set3);
    assertTrue(set3.contains(new MemberRole("testDomain.role.role3", 0)));
    assertEquals(set3.size(), 1);
}
Also used : Policy(com.yahoo.athenz.zms.Policy) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) Assertion(com.yahoo.athenz.zms.Assertion) DataCache(com.yahoo.athenz.zts.cache.DataCache) Role(com.yahoo.athenz.zms.Role) Domain(com.yahoo.athenz.zms.Domain) RoleMember(com.yahoo.athenz.zms.RoleMember) Test(org.testng.annotations.Test)

Aggregations

Domain (com.yahoo.athenz.zms.Domain)24 Test (org.testng.annotations.Test)23 DataCache (com.yahoo.athenz.zts.cache.DataCache)12 ArrayList (java.util.ArrayList)12 AthenzDomain (com.yahoo.athenz.zms.store.AthenzDomain)11 JDBCConnection (com.yahoo.athenz.zms.store.jdbc.JDBCConnection)10 Policy (com.yahoo.athenz.zms.Policy)6 Role (com.yahoo.athenz.zms.Role)6 ServiceIdentity (com.yahoo.athenz.zms.ServiceIdentity)6 HashMap (java.util.HashMap)6 Assertion (com.yahoo.athenz.zms.Assertion)5 RoleMember (com.yahoo.athenz.zms.RoleMember)5 Set (java.util.Set)5 SQLException (java.sql.SQLException)3 ResourceException (com.yahoo.athenz.zms.ResourceException)2 File (java.io.File)1 PreparedStatement (java.sql.PreparedStatement)1 ResultSet (java.sql.ResultSet)1